好的,我正在制作一个超级英雄,但我需要用main调用我的方法。有人告诉我它不在正确的位置,我是在一段时间之前编写此代码的,现在似乎无法正确获取它。
我尝试制作一种新方法,并最终将其命名为与属性相同的名称。
class Superhero:
def __init__(self, name = "", strengthPts = 0, staminaPts = 0, stylePts = 0, firstPunch = 0):
self.name = name
self.strengthPts = strengthPts
self.staminaPts = staminaPts
self.stylePts = stylePts
self.firstPunch = firstPunch
def addStrengthPts(self, points):
self.strengthPts = self.strengthPts + points
def addstaminaPts(self, points):
self.staminaPts = self.staminaPts + points
def addstylePts(self, points):
self.stylePts = self.stylePts + points
def firstPunch(self):
if(self.firstPunch == "-45 Points"):
print("First Punch!")
else:
print("Miss")
def main():
theHero = theHero("Eternal", "75", "50", "100", "-45 Points")
print("Name: " + theHero.name)
print("Strength Points: " + str(theHero.strengthPts))
print("Stamina Points: " + str(theHero.staminaPts))
print("Stle Points: " + str(theHero.stylePts))
print("-----------------------------")
print("Hit: " + str(theHero.firstPunch))
main()
预期的结果是打孔处理的数量是“ -45”,但是我得到的是;我从未见过的“ UnboundLocalError:在第28行分配之前引用了本地变量'theHero'。
答案 0 :(得分:0)
如果您在Python中使用class
(在您的情况下为SuperHero)并且拥有__init__
函数,则需要先对其进行初始化。
如果您想创建一个新的英雄,假设他的名字叫乔希(Josh),您需要这样做:
josh = SuperHero("Eternal", "75", "50", "100","-45 Points")
Josh现在是您可以使用的SuperHero对象:
josh.addstylePts(42) # Example of using one of the class functions
答案 1 :(得分:0)
实际上,您不是在创建类Superhero
的对象,而是要调用实际上是变量且未分配的函数,这就是为什么出现错误{{1} } ....
因此,您唯一需要更改的就是创建UnboundLocalError: local variable 'theHero' referenced before assignment on line 28
对象,而不是调用未分配的变量...
Superhero