在Person
对象中,已经有了对清单的支持,当Person
对象接受Weapon
对象或Food
对象时,该对象将转到清单。对于Tribute
对象,我想通过在Tribute
类中创建一个新方法来从清单中检索Weapon
对象,该方法将返回Tribute
当前在其清单中的Weapon
对象的元组。在
class Tribute(Person):
...
def get_weapons(self):
self.weapons=[]
for item in self.get_inventory():
if isinstance(item,Weapon):
self.weapons.append(item)
return tuple(self.weapons)
cc = Tribute("Chee Chin", 100)
chicken = Food("chicken", 5)
aloe_vera = Medicine("aloe vera", 2, 5)
bow = RangedWeapon("bow", 4, 10)
sword = Weapon("sword", 2, 5)
Base = Place("base")
Base.add_object(cc)
Base.add_object(chicken)
Base.add_object(aloe_vera)
Base.add_object(bow)
Base.add_object(sword)
cc.take(bow) # Chee Chin took bow
cc.take(sword) # Chee Chin took sword
cc.take(chicken) # Chee Chin took chicken
cc.take(aloe_vera) # Chee Chin took aloe_vera
但我一直得到AttributeError: 'RangedWeapon' object has no attribute 'owner'
。我不知道出了什么问题。我真的很感激你的帮助。谢谢您!在
不是python 3.x的专家,但是:
实际上,您从未将武器设置为从Thing继承-您需要调用适合于Thing的
super().__init__
行,在武器的ctor中。这是一个烦人的python怪癖。在看看这里-看看RangedWeapon的ctor-你做得对:
^{pr2}$相关问题 更多 >
编程相关推荐