-2
我试图在Python中使用类来制作游戏,我偶然发现了这个错误。游戏引擎的代码是:AttributeError:'引擎'对象没有属性'player1'
class Engine(object):
players = {"Arjuna":Arjuna("Shivam")}
def __init__(self):
return
def seek_player(self,input):
player1 = self.players.get(input)
player2 = Player("Shivam")
self.attack(player1, player2)
return player1, player2
def attack(self, player1, player2):
attack = raw_input("Choose your attack: ")
chosen_one = self.player1.moves.get(attack)
print "Your attack power is", chosen_one
new_health = self.player2.health() - chosen_one
print new_health
return
a = Engine()
input = raw_input("Choose your player: ")
a.seek_player(input)
我这样做,以后的步骤得到这个错误。
Traceback (most recent call last):
File "class.py", line 62, in <module>
a.seek_player(input)
File "class.py", line 49, in seek_player
self.attack(player1, player2)
File "class.py", line 54, in attack
chosen_one = self.player1.moves.get(attack)
AttributeError: 'Engine' object has no attribute 'player1'
我我得到这个 '追踪(最近呼叫最后): 文件“class.py”,第64行,在 a.seek_player(输入) 文件“class.py”,第51行,在seek_player中 self.attack(player1,player2) NameError:全局名称'player1'未定义' –
user3475283
2015-04-02 08:29:37
对不起,我错过了我的示例中的那些变量,现在编辑它。您需要将self.attack(player1,player2)的参数更改为self.attack(self.player1,self.player2)。你必须明白,一旦你启动了Class变量(即:self.player1),你可以在你的类的任何地方访问它,但是你必须使用关键字“self”来表示Class的实例。 另外你可能不需要返回变量player1和player2。 – 2015-04-02 08:34:18
对不起,听起来很愚蠢,但我已经尝试得到另一个错误。 – user3475283 2015-04-02 08:40:04