温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python面向对象编程repr方法教程

发布时间:2021-09-29 15:14:59 来源:亿速云 阅读:150 作者:iii 栏目:开发技术

本篇内容主要讲解“Python面向对象编程repr方法教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python面向对象编程repr方法教程”吧!

目录
  • 为什么要讲 __repr__

  • 重写 __repr__ 方法

  • str() 和 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() 不会生效的哦!

到此,相信大家对“Python面向对象编程repr方法教程”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI