gpt4 book ai didi

python - 如何修复Python类中的属性错误

转载 作者:行者123 更新时间:2023-12-01 00:58:56 26 4
gpt4 key购买 nike

我刚刚开始接触Python类,并且想知道为什么我在此类中的“ weapon_condition”属性会出现一个错误,它无法访问/定义,例如Weapon.name()。我知道一般来说我的课程还有很多要学习的地方,因此如果这是一个初学者的错误,我们深表歉意。任何帮助,将不胜感激。还不确定为什么我的一半代码显示在实时代码区域之外...我发错了吗?


class Weapon:
def __init__(self, name, type, damage, time, wear_rate):
self.name = name
self.type = type
self.damage = damage
self.wear_rate = wear_rate

def weapon_condition(self):
name = Weapon.name()
damage = Weapon.damage()
wear_rate = Weapon.wear_rate()
time = Weapon.time()
condition = time*wear_rate
if condition >= damage * 0.8:
return name + ' is in good condition.'
elif 0.8 > condition >= 0.3:
return name + ' needs work.'
elif condition < 0.3:
return name + 'is almost broken.'

sword_1 = Weapon('Bloodsword', 'sword', 48, 120, 0.16)

print(sword_1.name)
print(sword_1.type)
print(sword_1.damage)

print(Weapon.weapon_condition(sword_1))

最佳答案

weapon_condition是一个实例方法。您在实例(例如sword_1)上而不是在类(例如Weapon)上调用它。

例如:print(sword_1.weapon_condition())将完全按照您的要求进行操作,因为现在您正在使用实例在常规实例上调用实例方法的语法在实例上调用此实例方法。

您需要至少在您自己的代码中清楚地了解什么是类,什么是类实例,什么是实例方法以及如何声明和使用这些东西。您不能仅将类和实例互换使用。它们不是同一件事。

关于python - 如何修复Python类中的属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55978309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com