<p>可以肯定的是,这是你的全部代码吗?因为这里的问题很简单。您忘记将参数添加到类构造函数中。您为统计数据分配了随机数,但它们超出了对象范围,这意味着您的超级英雄不会访问这些变量,除非您将它们作为参数传递给构造函数</p>
<p>有两种方法可以解决这个问题:</p>
<p>A)将它们作为参数传递到构造函数中,因此</p>
<pre><code>class Superhero():
#initializing our class and setting its atrributes
def _init_(self, superName, power, braun, brains, stamina, wisdom, constitution, dexterity, speed):
self.superName = superName
self.power = power
self.braun = braun
self.brains = brains
self.stamina = stamina
self.wisdom = wisdom
self.constitution = constitution
self.dexterity = dexterity
self.speed = speed
print("Please enter your Super Hero name: ")
superName = input('>')
power = random.randint(1,20)
braun = random.randint(1,20)
brains = random.randint(1,20)
stamina = random.randint(1,20)
wisdom = random.randint(1,20)
constitution = random.randint(1,20)
dexterity = random.randint(1,20)
speed = random.randint(1,20)
hero = Superhero(superName, power, braun, brains, stamina, wisdom, constitution, dexterity, speed)
</code></pre>
<p>然后你可以打印你想要的任何东西</p>
<p>B)由于您的统计数据都是随机的,您可以告诉构造函数将它们分配给随机数,这会将代码缩短几行,但在创建对象时不允许您分配自己的统计数据,如下所示:</p>
<pre><code>class Superhero():
#initializing our class and setting its atrributes
def _init_(self, superName):
self.superName = superName
self.power = random.randint(1,20)
self.braun = random.randint(1,20)
self.brains = random.randint(1,20)
self.stamina = random.randint(1,20)
self.wisdom = random.randint(1,20)
self.constitution = random.randint(1,20)
self.dexterity = random.randint(1,20)
self.speed = random.randint(1,20)
print("Please enter your Super Hero name: ")
superName = input('>')
hero = Superhero(superName)
</code></pre>