Possible Duplicate:
Python: How to print a class or objects of class using print()?
我现在有这个代码:
class Track(object):
def __init__(self,artist,title,album=None):
self.artist = artist
self.title = title
self.album = album
def __str__(self):
return self.title + self.artist + self.album
现在,当我把类似
Track('Kanye West','Roses','Late Registration')
的东西放入终端时,我会得到<__main__.Track object at 0x10f3e0c50>
如何让它返回或打印该位置的值?我是编程新手,尤其是‘面向对象编程’新手,所以我的问题是什么是类?如何在类中定义函数?
最佳答案
您应该定义__repr__
方法:
class Track(object):
...
def __repr__(self):
return ('Track(artist=%s album=%s title=%s)'
% (repr(self.artist), repr(self.title), repr(self.album)))
现在您可以在终端中看到对象的表示:
>>> Track('Kanye West','Roses','Late Registration')
Track(artist='Kanye West' album='Roses' title='Late Registration')
注意
__str__
和__repr__
方法之间存在差异:__str__
需要将对象转换为字符串。呼叫:str(obj)
__repr__
-用于人类可读的可视化。呼叫:repr(obj)
当您进入终端
obj
时,python会自动调用repr
函数。但是如果使用print obj
表达式,python将调用str
函数:>>> obj
...repr of obj here...
>>> print obj
...str of obj here...
有关更多信息,请参见doc。
关于python - 如何在python中打印/返回一个类? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12802016/