__repr__

前言

  • repr方法用于转化为供解释器读取的形式,实例化一个类时,返回的类对象,可读性差,默认格式为“类名+object at+内存地址”

代码解释

class CLanguage:
    pass
clangs = CLanguage()
print(clangs)

### 程序运行结果为:
<__main__.CLanguage object at 0x000001A7275221D0>

上述代码解释了当我们输出某个实例化对象时,其调用的就是该对象的 repr() 方法,输出的是该方法的返回值。
等同于代码: print(clangs.repr())

和 __init__(self) 的性质一样,Python 中的每个类都包含 __repr__() 方法
因为 object 类包含 __reper__() 方法,而 Python 中所有的类都直接或间接继承自 object 类。

重写repr方法

默认情况下,repr() 会返回和调用者有关的 “类名+object at+内存地址”信息。当然,我们还可以通过在类中重写这个方法,从而实现当输出实例化对象时,输出我们想要的信息。

举个栗子:

class CLanguage:
    def __init__(self):
        self.name = "C语言中文网"
        self.add = "http://c.biancheng.net"
    def __repr__(self):
        return "CLanguage[name="+ self.name +",add=" + self.add +"]"
clangs = CLanguage()
print(clangs)

### 程序运行结果为:
CLanguage[name=C语言中文网,add=http://c.biancheng.net]

由此可见,repr() 方法是类的实例化对象用来做“自我介绍”的方法,默认情况下,它会返回当前对象的“类名+object at+内存地址”,而如果对该方法进行重写,可以为其制作自定义的自我描述信息。

posted @ 2022-05-05 21:28  大切切  阅读(20)  评论(0编辑  收藏  举报