当前位置: 首页 > 图灵资讯 > 行业资讯> Python __repr__()方法:显示属性

Python __repr__()方法:显示属性

发布时间:2025-10-13 17:52:06

先看下面的程序:

classItem:
def__init__(self,name,price):
self.name=name
self.price=price
#创建ITEM对象,并将其赋予IM变量
im=Item('鼠标',29.8)
#Item对象引用的打印im
print(im)

创建了上述程序中的一个 Item 对象,然后使用 print() 方法输出 Item 对象。在编译和操作上述程序时,将看到以下输出结果:

<__main__.Itemobjectat00001DB45D4000>

在操作上述程序时,读者可能会看到不同的输出结果,at 后的 16 十六进制数字可能会发生变化。但是这个输出结果是怎么来的呢?合理地说,print() 函数只能在控制台打印字符串, Item 例子是内存中的一个对象,如何直接转换为字符串输出?

事实上,当使用此方法输出时 Item 当对象实际输出时,它实际上是 Item 对象的 __repr__() 方法的返回值。换句话说,以下两行代码的效果完全相同:

print(im)
print(im.__repr__)

__repr__() 是 Python 由于类中的一种特殊方法, object 类自提供了所有这些方法 Python 类都是 object 所以所有的子类 Python 对象都具有 __repr__() 方法。

因此,当程序需要将任何对象与字符串连接时,都可以先调用 __repr__() 该方法将对象转换为字符串,然后将两个字符串连接在一起。例如,以下代码:

imstr=im.__repr()+""

__repr__() 这是一种非常特殊的方法,它是一种“自我描述”的方法,通常用于实现这样一个功能:当程序员直接打印对象时,系统将输出对象的“自我描述”信息,以告诉外部对象的状态信息。object 类提供的 __repr__() 该方法总是返回对象实现类“类名”+object at+内存地址的“值”并不能真正实现“自我描述”功能。因此,如果用户需要定制类能来实现“自我描述”功能,则必须重写 __repr__() 方法。例如,以下程序:

classApple:
#实现构造器
def__init__(self,color,weight):
self.color=color;
self.weight=weight;
#重写__repr___方法用于实现Apple对象的“自我描述”
def__repr__(self):
return"Apple[color="+self.color+\
",weight="+str(self.weight)+"]"
a=Apple("红色",5.68)
#打印Apple对象
print(a)

上述程序的编译和操作可以看到以下操作结果:

Apple[color=红色,weight=5.68]

从上述操作结果可以看出,通过重写 Apple 类的 __repr__() 该方法允许系统打印 Apple 打印对象的“自我描述”信息。

大多数时候,重写 __repr__() 该方法总是返回由对象所有有趣的信息组成的字符串。通常可以返回以下格式的字符串:

类名[field1=1,field2=2,...]

相关文章

Python __repr__()方法:显示属性

Python __repr__()方法:显示属性

2025-10-13
Python中==和is有什么区别

Python中==和is有什么区别

2025-10-13
Python中的opener()方法是什么

Python中的opener()方法是什么

2025-10-13
Python之requests模块相关介绍

Python之requests模块相关介绍

2025-10-12
如何利用Python进行垃圾分类

如何利用Python进行垃圾分类

2025-10-12
Python中字典的用法

Python中字典的用法

2025-10-12