无法打印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 个回答
2
其实这并不是一个错误——它只是在打印你的对象,而这个对象是属于Bok这个类的。你可以试着在Bok类里面添加一个__str__
方法,这样就能打印出它的内容了。你可以在这里看到怎么做:http://en.wikibooks.org/wiki/Python_Programming/Classes。
作为一个简单的测试,试着在你的Bok
类里面添加以下内容:
class Bok(object):
def __str__(self):
return "This is Bok"
然后再运行你的测试。
6
当你调用打印函数时,它会自动调用你对象的 __str__
方法。默认情况下,这个方法会显示对象的类型和内存地址。如果你想让你的对象以更易读的方式显示,你需要在你的类里重新定义一下 __str__
方法。
class Bok(object):
def __str__(self):
return 'This is a Bok!'
# Other members here...
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!