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__相关推荐

  1. python格式化输出 xz_Python——详解__str__, __repr__和__format__

    今天是Python专题的第10篇文章,我们来聊聊Python当中的类. 打印实例 我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例是一个非常不起眼的应用,但是在实际的编程当中却非常重要.原因 ...

  2. Python的__str__()方法

    Python的__str__()方法 说明:本文章的Python代码测试基于Python3.x __str__()方法的作用: 不定义__str__方法,print输出对象实例时,默认打印对象实例的内 ...

  3. python中__str__与__repr__

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

  4. Python中__str__和__repr__

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

  5. python中 __str__和__repr__

    如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object):def __init__(self, name, gender):self.name ...

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

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

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

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

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

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

  9. Python中__str__的用法

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

最新文章

  1. 宏基因组实战6. 不比对快速估计基因丰度Salmon
  2. PySide2安装出现Could not find a version that satisfies和No matching distribution found for
  3. 网银安全恐慌“后遗症”凸显 肉鸡检测器下载量近百万
  4. 关于div的outline-offset属性和focus事件的接收
  5. Quartz(任务调度)- job串行避免死锁
  6. 手把手教你 Spark 性能调优
  7. matlab GUI之自定义菜单小结
  8. cad致命错误如何处理_Golang 如何优雅地处理错误
  9. js导出的xlsx无法打开_js-xlsx 导出表格至excel
  10. 苹果锤完Facebook 又轮到谷歌了
  11. java基础知识整理(精简)
  12. Flutter功能 中ListView和GridView嵌套报错?【教你一步搞定】
  13. [Istioc]Istio部署sock-shop时rabbitmq出现CrashLoopBackOff
  14. 教你如何使用automake生成Makefile文件
  15. 云服务器下行_阿里云ECS服务器下行带宽和上行带宽详解及选择
  16. 云桌面简介,IDV和VDI,桌面虚拟化对比
  17. 共阳极数码管与共阴极数码管联合使用来循环显示数字00-99。
  18. POI对Word操作参考
  19. Kafka结合Spark-streaming 的两种连接方式(AWL与直连)
  20. 计算总成绩和平均成绩

热门文章

  1. Java 程序执行过程的内存流程图(结合类加载器 ClassLoader 讲解)
  2. JAVA类和对象访问_Java类和对象
  3. Java程序开发三步骤:编写、编译、运行
  4. android中有哪些utils的作用,AndroidUtils
  5. 太阳能板如何串联_光伏板清洁专用的清洁毛刷
  6. linux attach 指令,以太坊实战-attach命令详解
  7. FFmpeg options
  8. android开发 文件分享到应用,Android 实现文件分享功能(共享多个文件)
  9. html怎么设置数据条的颜色,jQuery EasyUI 数据网格 – 条件设置行背景颜色 | 菜鸟教程...
  10. 电话光端机和PDH光端机的区别