我创建了一个简单的类:
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
函数,而不是为每个对象调用它。这可能吗?
答案 0 :(得分:1)
将__str__
替换为__repr__
:
def __repr__(self):
return str(self.a)