【发布时间】:2015-04-20 02:49:33
【问题描述】:
我的程序是从列表中显示动物的名称和类型,然后随机选择一种感觉。我可以让前 2 个正确显示,但感觉显示为: > 的 bound method Animal.get_mood 并且我不知道为什么任何帮助都会很棒!
for item in animals:
print(item.get_name(), "the", item.get_animal_type(), "is", item.get_mood())
def __init__(self,animal_type, name, mood = None):
self.__mood = mood if mood else self.get_mood
def set_mood(self, mood):
self.__mood = mood
def check_mood(self):
integer = random.randint(1,3)
if integer == 1:
self.__mood = "happy"
elif integer == 2:
self.__mood = "hungry"
elif integer == 3:
self.__mood = "sleepy"
def get_mood(self):
return self.__mood
【问题讨论】:
-
你需要像这样调用
get_moodmood if mood else self.get_mood()注意()在get_mood之后 -
我刚刚这样做了,我收到了这么长的 Traceback(最近一次调用最后一次):generator/Animal.py",第 9 行,在 init self.__mood = mood if mood else self.get_mood() 第 40 行,在 get_mood return self.__mood AttributeError: 'Animal' object has no attribute '_Animal__mood'
标签: python list class python-3.x