本篇文章小编给大家分享一下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() 不会生效的哦!
太极熊猫2百度版 安卓版v1.7.1
下载黎明觉醒应用宝版 安卓版v1.111.1
下载暗影格斗3国际版 (Shadow Fight 3)最新版v1.40.3
下载王者战魂华为版 安卓版v3.6.1
下载放置魔法学院免广告版 v2.9.5
放置魔法学院内置Mod菜单是游戏的破解版本,在该版本中为玩家
万乘之国qq版本 安卓版v1.0.5
万乘之国qq版本是一款极具魅力的策略游戏,玩家们可以通过不同
动物餐厅国际服无限内购版 v12.9
动物餐厅国际服免广告版是游戏的破解版本,在该版本中为玩家去除
欧洲卡车司机 安卓版v3.2
欧洲卡车司机是款模拟经营游戏,这款游戏的画面还是蛮逼真的,给
疯狂大酒店 (Grand Hotel Mania)最新中文版v4.10.0.20
疯狂大酒店(Grand Hotel Mania)是一款好玩的