如果要把一个类的实例变成 str,就需要实现特殊方法__str__()

 class Person(object):def __init__(self, name, gender):self.name = nameself.gender = genderdef __str__(self):return '(Person: %s, %s)' % (self.name, self.gender)

现在,在交互式命令行下用 print 试试:

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:579817333
'''>>> p = Person('Bob', 'male')>>> print p(Person: Bob, male)

但是,如果直接敲变量 p:

>>> p
<main.Person object at 0x10c941890>

似乎__str__()不会被调用。

因为 Python 定义了__str__()__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。

有一个偷懒的定义__repr__的方法:

class Person(object):def __init__(self, name, gender):self.name = nameself.gender = genderdef __str__(self):return '(Person: %s, %s)' % (self.name, self.gender)__repr__ = __str__

python中 __str__和__repr__相关推荐

  1. python中__str__与__repr__

    (1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: 1 class adder: 2 def __init__(self,value=0): 3 sel ...

  2. python中str函数_一文让你彻底搞懂Python中__str__和__repr__?

    __str__和__repr__的异同? 字符串的表示形式 我们都知道,Python的内置函数repr()能够把对象用字符串的形式表达出来,方便我们辨认.这就是"字符串表示形式". ...

  3. Python中__str__和__repr__

    1.repr() 或 str() 函数 Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释 ...

  4. python中的str方法和repr方法_详解Python中__str__和__repr__方法的区别

    对我当前工程进行全部测试需要花费不少时间.既然有 26 GB 空闲内存,为何不让其发挥余热呢? tmpfs 可以通过把文件系统保存在大内存中来加速测试的执行效率. 但优点也是缺点,tmpfs 只把结果 ...

  5. python中与0xf2相等的是_python中__str__与__repr__

    (1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: 1 classadder:2 def __init__(self,value=0):3 self.d ...

  6. python中 str 和 repr_Python中__str__和 __repr__

    __str__, __repr__ 是python类中的两个魔术方法,前者是在类实例当作字符串时调用,后者通常给程序员调试信息时给输出,都可以直接显示类信息.__repr__ = __str__,简单 ...

  7. Python中__str__的用法

    __str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): 不使用 __str__ ,print打印出来是个对象:使用了就把对象变成字符串class P ...

  8. python 的__str__和__repr__有什么区别?

    __str__和__repr__Python和有什么不一样? __repr__:python对象的表示形式,通常eval会将其转换回该对象 __str__:是您所认为的文本形式的对象 例如 >& ...

  9. python中repr_python中__str__和__repr__的区别

    __str__是在str()函数被使用,或是在print函数打印一个对象的时候才被调用的,并且它返回的字符串对终端用户更友好. 如果只想实现这两个特殊方法中的一个,__repr__是更好的选择,因为如 ...

最新文章

  1. Docker 部署SpringBoot项目不香吗?
  2. 如何绕过chrome的弹窗拦截机制
  3. 紫书 习题 10-44 UVa 11246 ( 容斥原理)
  4. linux fedora yum安装docker-ce
  5. Runloop底层原理--源码分析
  6. 自动生成WebForm中对实体类的编辑页面
  7. 《SAS编程与数据挖掘商业案例》学习笔记之十五
  8. 写给初中级前端的高级进阶指南等
  9. Azure与Scott Guthrie:Azure安全中心和基于角色的访问控制
  10. 青蛙学Linux—NFS
  11. ubuntu sun-java6-jre_在 Ubuntu Lucid 下请回 Sun Java6 Jre, 赶走 OpenJDK
  12. 人人商城小程序昵称变成了“微信用户”头像也不显示?getUserInfo换成getUserProfile
  13. 【脚本解析笔记】文件批量重命名
  14. Visual Studio无法定位于动态链接库
  15. 性能测试——结果量含义(系统吞吐量(TPS)、用户并发量)
  16. 《按自己的意愿过一生》语录一
  17. vue3 setup写法(语法糖版本)
  18. 鸿蒙系统可以装微信,网友:让腾讯支持华为,微信专用鸿蒙系统,安卓:你说啥?...
  19. 算法-入门篇(欧式距离)
  20. 顺丰开放平台开发者接入指引

热门文章

  1. @interface CTDataFactoryViewController : CTMessageViewController
  2. HDU1257 最少拦截系统(下降自序列个数)
  3. 使用HTML5的十大原因
  4. 广域线路打环测试步骤
  5. python m什么意思_Python -m参数原理及使用方法解析
  6. 超级直播sop直播源.zip_双11首场虚拟直播,天猫超级直播开创直播新玩法
  7. 【学习笔记】硬件设备选型
  8. ABAP CHECKBOX 和LISTBOX使用指南
  9. 固定资产多提折旧问题
  10. 9个妙招增强家庭WIFI信号