为了账号安全,请及时绑定邮箱和手机立即绑定

__repr___()

如果类中只定义__str__()方法,没有定义__repr___()方法,打印对象同样可以打印出格式化后的对象,而不是地址



正在回答

2 回答

个人理解:只要重写了 __str__()方法,不管是打印对象还是打印对象的字符串格式,其调用的都是 __str__()方法,所以显示的都是格式化的结果。也就是说,print(str(obj)) 和 print(obj) 是一样的

而只有在控制台(window下的cmd,命令提示符)中,在python环境下直接输入(不是打印)obj,回车,调用的才是 __repr__()方法。如果没有重写该方法,还是会显示对象所在的地址

0 回复 有任何疑惑可以回复我~

str是对用户 显式调用时可以打印,repr是在控制台直接输出 对象变量时调用,需要自己再重写,不然还是地址内容输出

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python3 进阶教程(新版)
  • 参与学习       41898    人
  • 解答问题       236    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程
意见反馈 帮助中心 APP下载
官方微信