首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组未正确打印Python

数组未正确打印Python
EN

Stack Overflow用户
提问于 2017-10-31 11:02:45
回答 2查看 506关注 0票数 0
代码语言:javascript
复制
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中的项目

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-31 11:08:03

代码语言:javascript
复制
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__定义您想要的对象的外观。我希望它能解决你的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-10-31 11:05:15

据我所知,__repr__应该返回一个字符串,该字符串可以计算成实例化等效对象的代码。为了便于阅读,您应该使用Item.__str__方法:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47033805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档