因此,我对编码非常陌生,并且以python开头,我试图在程序中建立一个类,该程序通过随机分配DnD参与者的属性来将它们组合在一起。到目前为止,我可以使用该程序初始化党员实例,并仅向用户提示他们希望在党中选择多少个英雄。我的问题是在设置列表并将所有内容放置到位之后。我无法打印单个英雄的任何属性。无论我是从列表中调用它们还是直接尝试打印它们。我尝试使用__str__
创建属性的字符串,但显然缺少某些内容。任何帮助将不胜感激。
import random
class Party:
def __init__(self, name="", race="", alignment="", class_=""):
self.name = name
while name == "":
name = random.choice(names)
# print(name)
self.race = race
while race == "":
race = random.choice(races)
# print(race)
self.alignment = alignment
while alignment == "":
alignment = random.choice(alignments)
# print(alignment)
self.class_ = class_
while class_ == "":
class_ = random.choice(classes)
# print(class_)
def character_stats(self):
return "{} - {} - {} - {}".format(self.name, self.race, self.class_, self.alignment)
每个属性从列表中提取随机值。我的format语句是获取属性值而不是对象/属性的最新尝试。抱歉,如果有任何术语错误,对此非常新颖
除了输入以外,您没有分配其他任何内容(在这种情况下,属性是一个空字符串""
。在最小的示例中,您具有以下构造函数:
class Party:
def __init__(self, name=""):
self.name = name
while name == "":
name = random.choice(names)
从names
随机分配新名称后,应将其分配给self
,否则,当__init__
方法完成时,局部变量将超出范围。此代码段应工作:
class Party:
def __init__(self, name=""):
while name == "":
name = random.choice(names)
# Now we assign the local variable as
# an attribute
self.name = name