python中 __str__和__repr__
如果要把一个类的实例变成 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__相关推荐
- python中__str__与__repr__
(1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: 1 class adder: 2 def __init__(self,value=0): 3 sel ...
- python中str函数_一文让你彻底搞懂Python中__str__和__repr__?
__str__和__repr__的异同? 字符串的表示形式 我们都知道,Python的内置函数repr()能够把对象用字符串的形式表达出来,方便我们辨认.这就是"字符串表示形式". ...
- Python中__str__和__repr__
1.repr() 或 str() 函数 Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释 ...
- python中的str方法和repr方法_详解Python中__str__和__repr__方法的区别
对我当前工程进行全部测试需要花费不少时间.既然有 26 GB 空闲内存,为何不让其发挥余热呢? tmpfs 可以通过把文件系统保存在大内存中来加速测试的执行效率. 但优点也是缺点,tmpfs 只把结果 ...
- python中与0xf2相等的是_python中__str__与__repr__
(1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: 1 classadder:2 def __init__(self,value=0):3 self.d ...
- python中 str 和 repr_Python中__str__和 __repr__
__str__, __repr__ 是python类中的两个魔术方法,前者是在类实例当作字符串时调用,后者通常给程序员调试信息时给输出,都可以直接显示类信息.__repr__ = __str__,简单 ...
- Python中__str__的用法
__str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): 不使用 __str__ ,print打印出来是个对象:使用了就把对象变成字符串class P ...
- python 的__str__和__repr__有什么区别?
__str__和__repr__Python和有什么不一样? __repr__:python对象的表示形式,通常eval会将其转换回该对象 __str__:是您所认为的文本形式的对象 例如 >& ...
- python中repr_python中__str__和__repr__的区别
__str__是在str()函数被使用,或是在print函数打印一个对象的时候才被调用的,并且它返回的字符串对终端用户更友好. 如果只想实现这两个特殊方法中的一个,__repr__是更好的选择,因为如 ...
最新文章
- Docker 部署SpringBoot项目不香吗?
- 如何绕过chrome的弹窗拦截机制
- 紫书 习题 10-44 UVa 11246 ( 容斥原理)
- linux fedora yum安装docker-ce
- Runloop底层原理--源码分析
- 自动生成WebForm中对实体类的编辑页面
- 《SAS编程与数据挖掘商业案例》学习笔记之十五
- 写给初中级前端的高级进阶指南等
- Azure与Scott Guthrie:Azure安全中心和基于角色的访问控制
- 青蛙学Linux—NFS
- ubuntu sun-java6-jre_在 Ubuntu Lucid 下请回 Sun Java6 Jre, 赶走 OpenJDK
- 人人商城小程序昵称变成了“微信用户”头像也不显示?getUserInfo换成getUserProfile
- 【脚本解析笔记】文件批量重命名
- Visual Studio无法定位于动态链接库
- 性能测试——结果量含义(系统吞吐量(TPS)、用户并发量)
- 《按自己的意愿过一生》语录一
- vue3 setup写法(语法糖版本)
- 鸿蒙系统可以装微信,网友:让腾讯支持华为,微信专用鸿蒙系统,安卓:你说啥?...
- 算法-入门篇(欧式距离)
- 顺丰开放平台开发者接入指引