在Python shell中,每当我们输入一个裸绑定名称时,我们都会返回一些描述它(名称(绑定到的对象的文本:
>>> class c:
... pass
...
>>> o = c()
>>> o
<__main__.c object at 0x00510B30>
>>>
此文本是否像对象的官方属性,还是由函数返回?可以改变吗?
更新:我阅读了下面的答案并理解了它们。但是,当一个类的对象每个返回不同的值(例如字符串(时呢?必须有一个对象级(而不是类级(属性是此信息的来源..,对吧?
此文本由类上__repr__()
的默认实现返回。要更改它,您所要做的就是覆盖__repr__()
方法。
>>> class C:
def __repr__(self):
return 'My Message Here'
>>> o = C()
>>> o
My Message Here
您可以使用__str__()
或__repr__
但更常使用的是__repr__()
__str__()
因为只有在类型更改为字符串类型时才返回
例如:
class MyName():
def __repr__(self):
return "Faran2007"
def __str__(self):
return "FaranAiki"
在控制台
>>> Obj = MyName()
>>> Obj
Faran2007
>>> Full_name = str(MyName())
>>> Full_name
FaranAiki