python特殊函数__str__、__repr__和__len__
1.__str__
首先介绍__str__
class Students(object):def __init__(self, *args):self.names = args # def __str__(self): # return str(self.names) # __repr__ = __str__ ss = Students('hyq','ysy') ss>>><__main__.Students at 0x2075a779828>
打印类对象显示的是对象的内存地址,下面重构__repr__和__str__方法
再看:
class Students(object):def __init__(self, *args):self.names = argsdef __str__(self):return str(self.names) # def __repr__(self): # return str(self.names) ss = Students('hyq','ysy') ss>>><__main__.Students at 0x2075a78a860>
class Students(object):def __init__(self, *args):self.names = args # def __str__(self): # return str(self.names)def __repr__(self):return str(self.names) ss = Students('hyq','ysy') ss>>>('hyq', 'ysy')
可以看到,重构__repr__方法后,直接输出对象,能够按照__repr__中定义的格式进行显示;
而重构__str__方法后,直接输出对象,显示的是对象的内存地址,并不是__str__定义的格式
当然,用print都能够显示__repr__和__str__定义的格式
class Students(object):def __init__(self, *args):self.names = args # def __str__(self): # return str(self.names)def __repr__(self):return str(self.names) ss = Students('hyq','ysy') print(ss)>>>('hyq','ysy')————————————————————————————————————————————分割线———————————————————————————————————— class Students(object):def __init__(self, *args):self.names = argsdef __str__(self):return str(self.names) # def __repr__(self): # return str(self.names) ss = Students('hyq','ysy') print(ss)>>>('hyq','ysy')
注意:
在代码中一般写成:
def __str__(self):return str(self.names) __repr__ = __str__
2.__len__
如果一个类表现得像一个list,要获取有多少元素,就得用len()函数
要让len()函数正常工作,类必须提供一个特殊方法__len__(),返回元素的个数
class Students(object):def __init__(self, *args):self.names = argsdef __len__(self):return len(self.names)ss = Students('hyq','ysy') print(len(ss)>>>2
转载于:https://www.cnblogs.com/yqpy/p/9286047.html
python特殊函数__str__、__repr__和__len__相关推荐
- python格式化输出 xz_Python——详解__str__, __repr__和__format__
今天是Python专题的第10篇文章,我们来聊聊Python当中的类. 打印实例 我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例是一个非常不起眼的应用,但是在实际的编程当中却非常重要.原因 ...
- Python的__str__()方法
Python的__str__()方法 说明:本文章的Python代码测试基于Python3.x __str__()方法的作用: 不定义__str__方法,print输出对象实例时,默认打印对象实例的内 ...
- python中__str__与__repr__
(1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: 1 class adder: 2 def __init__(self,value=0): 3 sel ...
- Python中__str__和__repr__
1.repr() 或 str() 函数 Python 有办法将任意值转为字符串:将它传入repr() 或str() 函数. 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为供解释 ...
- python中 __str__和__repr__
如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object):def __init__(self, name, gender):self.name ...
- python中str函数_一文让你彻底搞懂Python中__str__和__repr__?
__str__和__repr__的异同? 字符串的表示形式 我们都知道,Python的内置函数repr()能够把对象用字符串的形式表达出来,方便我们辨认.这就是"字符串表示形式". ...
- python 的__str__和__repr__有什么区别?
__str__和__repr__Python和有什么不一样? __repr__:python对象的表示形式,通常eval会将其转换回该对象 __str__:是您所认为的文本形式的对象 例如 >& ...
- python中的str方法和repr方法_详解Python中__str__和__repr__方法的区别
对我当前工程进行全部测试需要花费不少时间.既然有 26 GB 空闲内存,为何不让其发挥余热呢? tmpfs 可以通过把文件系统保存在大内存中来加速测试的执行效率. 但优点也是缺点,tmpfs 只把结果 ...
- Python中__str__的用法
__str__和__repr__ 如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): 不使用 __str__ ,print打印出来是个对象:使用了就把对象变成字符串class P ...
最新文章
- 宏基因组实战6. 不比对快速估计基因丰度Salmon
- PySide2安装出现Could not find a version that satisfies和No matching distribution found for
- 网银安全恐慌“后遗症”凸显 肉鸡检测器下载量近百万
- 关于div的outline-offset属性和focus事件的接收
- Quartz(任务调度)- job串行避免死锁
- 手把手教你 Spark 性能调优
- matlab GUI之自定义菜单小结
- cad致命错误如何处理_Golang 如何优雅地处理错误
- js导出的xlsx无法打开_js-xlsx 导出表格至excel
- 苹果锤完Facebook 又轮到谷歌了
- java基础知识整理(精简)
- Flutter功能 中ListView和GridView嵌套报错?【教你一步搞定】
- [Istioc]Istio部署sock-shop时rabbitmq出现CrashLoopBackOff
- 教你如何使用automake生成Makefile文件
- 云服务器下行_阿里云ECS服务器下行带宽和上行带宽详解及选择
- 云桌面简介,IDV和VDI,桌面虚拟化对比
- 共阳极数码管与共阴极数码管联合使用来循环显示数字00-99。
- POI对Word操作参考
- Kafka结合Spark-streaming 的两种连接方式(AWL与直连)
- 计算总成绩和平均成绩
热门文章
- Java 程序执行过程的内存流程图(结合类加载器 ClassLoader 讲解)
- JAVA类和对象访问_Java类和对象
- Java程序开发三步骤:编写、编译、运行
- android中有哪些utils的作用,AndroidUtils
- 太阳能板如何串联_光伏板清洁专用的清洁毛刷
- linux attach 指令,以太坊实战-attach命令详解
- FFmpeg options
- android开发 文件分享到应用,Android 实现文件分享功能(共享多个文件)
- html怎么设置数据条的颜色,jQuery EasyUI 数据网格 – 条件设置行背景颜色 | 菜鸟教程...
- 电话光端机和PDH光端机的区别