Я фактически закончил это упражнение (почти), но просто застрял на крошечной проблеме с __str__
, которая находится внутри объекта. Если я это сделатьПечать Python __str__ с объекта
elif choice == "9":
try:
for i in sworm:
print(i)
except TypeError:
None`
Тогда это будет только распечатать детали первого объекта в моем списке (только 2 объекта есть) например - sworm = [crit,crit1]
Когда я попробовал этот
elif choice == "9":
try:
print(sworm)
except TypeError:
None
Тогда я получаю: -
[<__main__.Critter object at 0x02B54AD0>, <__main__.Critter object at 0x02B5B190>]
Вот первая половина моего объекта
class Critter(object):
"""A virtual pet"""
def __init__(self, name, hunger = random.randint(1,50), boredom = random.randint(1,50)):
self.name = name
self.hunger = hunger
self.boredom = boredom
def __pass_time(self):
self.hunger += 1
self.boredom += 1
def __str__(self):
print ("Critter object\n")
print (self.name)
print (self.hunger)
print (self.boredom)
Заранее спасибо.
Это не по теме, но обратите внимание, что ваши аргументы конструктора будут оцениваться только один раз, а не при каждом создании экземпляра (см. Http://docs.python-guide.org/en/latest/writing/gotchas.html # mutable-default-arguments) – justinas