我创建了一个包含列表的类,其代码如下:
class ProdReg:
def __init__(self):
self.__Pliste=[]
这完美无缺。 我还添加了一种打印列表内容的方法:
def printProdReg(self):
for produkt in self.__Pliste:
print(produkt)
这不是很好,当我尝试将对象添加到此列表时,我收到以下错误:
<__main__.Bok object at 0x05777970>
该对象是一个名为Bok
的类。
不知道我怎么解决这个问题。
答案 0 :(得分:6)
对象的调用调用__str__
,默认情况下会打印类型和内存地址。如果您想要更具可读性的对象表示,则需要为您的班级提供__str__
的新实现。
class Bok(object):
def __str__(self):
return 'This is a Bok!'
# Other members here...
答案 1 :(得分:4)
没有问题,只是解释器不知道如何打印你的对象:
>>> class Me:
... pass
...
>>> me = Me()
>>> print me
<__main__.Me instance at 0xf98368>
如果您需要打印某些内容,可以在对象中添加__str__
方法:
>>> class Me:
... def __str__(self):
... return "It's Me!"
...
>>> me = Me()
>>> print me
It's Me!
答案 2 :(得分:2)
这实际上不是错误 - 它正在打印您的对象,这是Bok类。尝试将__str__
添加到Bok类以打印其内容。你可以在这里看到:http://en.wikibooks.org/wiki/Python_Programming/Classes。
作为简单测试,请尝试将此添加到Bok
类:
class Bok(object):
def __str__(self):
return "This is Bok"
再次运行测试。
答案 3 :(得分:1)
这不是错误,它是您用来添加到列表中的函数返回的对象。