如何修改 Python 提示符下返回的文本描述?



在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