此代码有效:class score():
def __init__(self):
self.score = 0
self.num_enemies = 5
self.num_lives = 3
def setScore(self, num):
self.score = num
def getEnemies(self):
return self.num_enemies
def getLives(self):
return self.getLives
scoreObj = score()
for enemy_num in range(0, scoreObj.getEnemies()):
print enemy_num
# I don't know what enemy_sprite is, but
# I commented it out and just print the enemy_num result.
# enemy_sprite.add(enemy())
经验教训:
类函数必须始终采用一个参数self。
这是因为当您在类中调用函数时,总是使用类名作为调用对象,例如:scoreObj = score()
scoreObj.getEnemies()
其中x是类对象,它将作为根对象传递给getEnemies(),这意味着发送给类的第一个参数。
其次,当在类中调用函数(或者根本调用函数)时,总是以()结尾,因为这是在Python中调用某些东西的定义。
然后,扪心自问,“为什么我没有像现在这样去获取‘scoreObj.num庀lives’?我在节省处理能力吗?”按您的选择做,但是如果您直接从类对象中获取值,则会更快,除非您希望同时计算内容。那你的逻辑就完全有道理了!