Python面向对象编程repr方法示例详解

 更新时间:2021年09月29日 12:03:51   作者:小菠萝测试笔记  
这篇文章主要介绍了Python面向对象编程repr方法的示例详解,文中附含详细的代码示例,有需要的朋友可以借鉴参考下,希望能够有所帮助

为什么要讲 __repr__

在 Python 中,直接 print 一个实例对象,默认是输出这个对象由哪个类创建的对象,以及在内存中的地址(十六进制表示)

假设在开发调试过程中,希望使用 print 实例对象时,输出自定义内容,就可以用 __repr__ 方法了

或者通过 repr() 调用对象也会返回 __repr__ 方法返回的值

是不是似曾相识....没错..和 __str__ 一样的感觉 代码栗子

class A:
    pass
 
    def __repr__(self): 
a = A()
print(a)
print(repr(a))
print(str(a))  
# 输出结果
<__main__.A object at 0x10e6dbcd0>
<__main__.A object at 0x10e6dbcd0>
<__main__.A object at 0x10e6dbcd0>

默认情况下,__repr__() 会返回和实例对象 <类名 object at 内存地址> 有关的信息

重写 __repr__ 方法

class PoloBlog:
    def __init__(self):
        self.name = "小菠萝"
        self.add = "https://www.cnblogs.com/poloyy/"
 
    def __repr__(self):
        return "test[name=" + self.name + ",add=" + self.add + "]"  
blog = PoloBlog()
print(blog)
print(str(blog))
print(repr(blog)) 
# 输出结果
test[name=小菠萝,add=https://www.cnblogs.com/poloyy/]
test[name=小菠萝,add=https://www.cnblogs.com/poloyy/]
test[name=小菠萝,add=https://www.cnblogs.com/poloyy/]

只重写 __repr__ 方法,使用 str() 的时候也会生效哦

class PoloBlog:
    def __init__(self):
        self.name = "小菠萝"
        self.add = "https://www.cnblogs.com/poloyy/"
 
    def __str__(self):
        return "test[name=" + self.name + ",add=" + self.add + "]"
 
blog = PoloBlog()
print(blog)
print(str(blog))
print(repr(blog))
 
# 输出结果
test[name=小菠萝,add=https://www.cnblogs.com/poloyy/]
test[name=小菠萝,add=https://www.cnblogs.com/poloyy/]
<__main__.PoloBlog object at 0x10e2749a0>

只重写 __str__ 方法的话,使用 repr() 不会生效的哦!

str() 和 repr() 的区别

https://www.jb51.net/article/64333.htm

以上就是Python面向对象编程repr方法示例详解的详细内容,更多关于Python面向对象编程repr的资料请关注脚本之家其它相关文章!

相关文章

  • 用Python实现一个简单的多线程TCP服务器的教程

    用Python实现一个简单的多线程TCP服务器的教程

    这篇文章主要介绍了用Python实现一个简单的多线程TCP服务器的教程,示例的运行环境为Windows操作系统,需要的朋友可以参考下
    2015-05-05
  • Python Parser的用法

    Python Parser的用法

    这篇文章主要介绍了Python Parser的用法,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • python Exception常规异常基类详解

    python Exception常规异常基类详解

    这篇文章主要为大家介绍了python Exception常规异常基类详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 利用pandas进行数据清洗的方法

    利用pandas进行数据清洗的方法

    本文主要介绍了利用pandas进行数据清洗的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Python中的函数参数类型检查

    Python中的函数参数类型检查

    这篇文章主要介绍了Python中的函数参数类型检查,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python GUI模拟实现计算器

    python GUI模拟实现计算器

    这篇文章主要为大家详细介绍了python GUI模拟实现计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • Python中asyncore的用法实例

    Python中asyncore的用法实例

    这篇文章主要介绍了Python中asyncore的用法,asyncore提供了方便的网络操作方法,本文以连接并解析www.python.org主页为例加以说明,需要的朋友可以参考下
    2014-09-09
  • Python文本处理简单易懂方法解析

    Python文本处理简单易懂方法解析

    这篇文章主要介绍了Python文本处理简单易懂方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python用quad、dblquad实现一维二维积分的实例详解

    python用quad、dblquad实现一维二维积分的实例详解

    今天小编大家分享一篇python用quad、dblquad实现一维二维积分的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • pygame实现成语填空游戏

    pygame实现成语填空游戏

    这篇文章主要介绍了pygame实现成语填空游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10

最新评论