class Item:
def __init__(self, name, cost):
self.name = name
self.cost = cost
charm = Item("Charm of Capitalism", 20)
talis = Item("Talisman of Truth", 100)
shopArray = [charm, talis]
print("Items for sale: {}" .format(shopArray))当我打印shopArray时,输出是
Items for sale: [<__main__.Item object at 0x02174270>, <__main__.Item object at 0x021742B0>]
我希望它能显示shopArray中的项目
任何帮助都将不胜感激。
发布于 2017-10-31 11:08:03
class Item:
def __init__(self, name, cost):
self.name = name
self.cost = cost
def __repr__(self):
return "name: " + self.name + " cost: " + str(self.cost)
charm = Item("Charm of Capitalism", 20)
talis = Item("Talisman of Truth", 100)
shopArray = [charm, talis]
print("Items for sale: {}" .format(shopArray))您可以使用__repr__定义您想要的对象的外观。我希望它能解决你的问题。
发布于 2017-10-31 11:05:15
据我所知,__repr__应该返回一个字符串,该字符串可以计算成实例化等效对象的代码。为了便于阅读,您应该使用Item.__str__方法:
class Item:
def __init__(self, name, cost):
self.name = name
self.cost = cost
def __str__(self):
# Whichever formating you want.
return '%s: %f' % (self.name, self.cost)
charm = Item("Charm of Capitalism", 20)
talis = Item("Talisman of Truth", 100)
shopArray = [charm, talis]
print("Items for sale: {}" .format(map(str, shopArray)))注意,您需要将Items的列表映射到strs。
https://stackoverflow.com/questions/47033805
复制相似问题