无法在python中打印列表的内容

时间:2010-11-14 19:44:03

标签: python

我创建了一个包含列表的类,其代码如下:

class ProdReg:
def __init__(self):
    self.__Pliste=[]

这完美无缺。 我还添加了一种打印列表内容的方法:

def printProdReg(self):  
    for produkt in self.__Pliste:
        print(produkt)

这不是很好,当我尝试将对象添加到此列表时,我收到以下错误:

<__main__.Bok object at 0x05777970>

该对象是一个名为Bok的类。

不知道我怎么解决这个问题。

4 个答案:

答案 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)

这不是错误,它是您用来添加到列表中的函数返回的对象。