【问题标题】:How to print object from within a list [duplicate]如何从列表中打印对象[重复]
【发布时间】:2017-09-24 17:50:44
【问题描述】:

我创建了一个简单的类:

class C:
    def __init__(self):
        self.a = 1

我想使用我创建的函数打印该类中的对象列表:

def p(s):
    print('hi ', s)

我想这样调用打印函数p:p([C() for i in range(3)])

不幸的是,这会产生hi [<__main__.C object at 0x000000F92A8B9080>, <__main__.C object at 0x000000F92AB0E898>, <__main__.C object at 0x000000F92AB0E978>]

我认为问题是由于没有实现 __str__ 所以我将我的课程改为:

class C:
def __init__(self):
    self.a = 1
def __str__(self):
    return str(self.a)

但我得到相同的结果:(

我希望的是hi [1, 1, 1]hi 1, 1, 1 或类似的东西,而不是我创建的对象的内存位置。

我可以使用

for i in range(3): p(C())

但我想将对象列表传递给p 函数,而不是为我的每个对象调用它。这可能吗?

【问题讨论】:

  • 你需要实现__repr____str__ for list 使用它所包含的对象的__repr__

标签: python python-3.x


【解决方案1】:

__str__ 替换为__repr__

def __repr__(self):
    return str(self.a)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 2019-06-13
    • 2022-01-09
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 2023-01-11
    相关资源
    最近更新 更多