基于彼此设置自变量



python快速问答假设我的类是这样的

class Enemy():
def __init__(self, level):
self.level = level
self.damage = self.level + 5

的事情是,自从自我。损坏值是实例化一次,它将不会更新时,自我。关卡改变了,我该怎么做呢?我试着在网上搜索,但我不知道这是什么,所以我找不到任何帮助

可以使用属性。也许你知道其他编程语言中的getter和setter方法。属性是它们的Python等价物。在这种情况下,您只需要一个getter方法。

class Enemy():
def __init__(self, level):
self.level = level
@property
def damage(self):
return self.level + 5

美妙之处在于,您仍然可以像访问enemy.damage一样访问damage作为实例上的属性,而不必显式调用该方法,它是自动完成的。

除了使用属性之外,您还可以将损害设置为函数而不是变量:

def damage():
return self.level + 5

这是一篇关于属性的好文章:
https://www.freecodecamp.org/news/python-property-decorator/

它们允许您控制如何访问属性,这使得在将来如果您决定需要更改时更容易更新它们。例如,您可以更改值或使其成为变量,而不是平面+5,这样任何调用该属性的内容都不会受到影响。

之后你可以添加一种手动设置伤害的方法,如果你想的话,通过使用@damage.setter

class Enemy():
'''This holds the data and functionality for enemies'''
def __init__(self, level):
self.level = level
# Show the damage being set
print(self.damage)
@property
def damage(self):
return self.level + 5

最新更新