# __str__ : str(obj),要求必须实现了__str__,要求这个方法的返回值必须是字符串str类型        # print %s str

# __repr__: 是__str__的备胎.如果有__str__方法,那么# print %s str都先去执行__str__方法,并且使用__str__的返回值        # 如果没有__str__,那么 print %s str都会执行repr        # repr(obj),%r

 在子类中使用__str__,先找子类的__str__,没有的话要向上找,只要父类不是object,就执行父类的__str__ 但是如果除了object之外的父类都没有__str__方法,就执行子类的__repr__方法,如果子类也没有, 还要向上继续找父类中的__repr__方法. 一直找不到 再执行object类中的__str__方法
a = '123'
print(a)
print(repr(a))class A:def __init__(self,name):self.name = namedef __str__(self):return '**%s**'%self.namedef __repr__(self):return self.nameclass B(A):def __init__(self,name):self.name = namedef __repr__(self):return '***'a = B('alex')
print(a)
print(str(a),repr(a))
print('%s | %r'%(a,a))print('---%r---'%('abc'))
print('---%s---'%('abc'))__str__ __repr__ : repr

 object类中的解释是str返回的str(self),repr返回的是repr(self),但是在普通类中这样会造成递归的效应,只能根据优先级 重构str方法,返回repr(self) ********

class A():def __init__(self,name):self.name=namedef _str__(self):return repr(self)  #此处模仿object类中__str__方法的返回值a=A('ales')
print(a)
print(type(a.__str__())) #返回值是一个字符串类型

  

转载于:https://www.cnblogs.com/luxiangyu111/p/9414527.html

关于__str__和__repr__的用法和区别相关推荐

  1. python中魔法方法__str__与__repr__的区别

    提出问题 当我们自定义一个类时,打印这个类对象或者在交互模式下直接输入这个类对象按回车,默认显示出来的信息好像用处不大.如下所示 In [1]: class People: ...: def __in ...

  2. __Str__和__repr__有什么区别?

    文章来源:__Str__和__repr__有什么区别? - 代码领悟code05.com 提问:__Str__和__repr__有什么区别? Python中的__str__和__repr__有什么区别 ...

  3. python中魔法方法repr_python中魔法方法__str__与__repr__的区别

    提出问题 当我们自定义一个类时,打印这个类对象或者在交互模式下直接输入这个类对象按回车,默认显示出来的信息好像用处不大.如下所示 In [1]: classPeople: ...:def __init ...

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

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

  5. python中__str__与__repr__

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

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

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

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

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

  8. 【Python面向对象编程】第11篇 特殊方法之__str__和__repr__

    本篇我们介绍如何利用 Python __str__ 和 __repr__ 方法定义对象的字符串表示,以及它们之间的区别. __str__ 方法简介 以下代码定义了一个类 Person: class P ...

  9. python 类变量、实例变量、参数、实例方法、类方法、静态方法 的用法和区别

    #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Introduce : 类变量.实例变量.参数.实例方法.类方法 ...

最新文章

  1. 免费报名 | WPS专家教你文本分类在企业中的应用实践
  2. 块级元素与行级元素(内联元素)
  3. cisco 动态路由协议RIP笔记
  4. Linux C++线程池实例
  5. laravel的重定向
  6. SSL/TLS深度解析--测试TLS/SSL加密
  7. JavaScript 系列笔记(一)数据类型
  8. 我奋斗了18年,不是为了和你一起喝咖啡。
  9. w3cschool php下载_w3cschool下载_W3Cschool v2.0离线版
  10. 我用python自制hosts修改神器,组长说你他娘的还真是个天才(附源码)
  11. 印象笔记中可以使用html语言吗,印象笔记支持markdown啦
  12. python英语单词 扇贝英语安卓下载_扇贝单词英语版app最新版
  13. 【操作系统】30天自制操作系统--(1)虚拟机加载最小操作系统
  14. 一些有趣的软件分享,给生活带来一点乐趣
  15. 循环体中continue、break语句的使用
  16. 操作系统的基本概念和功能
  17. 使用HTML5/CSS3五步快速制作便签贴特效
  18. 张鸿洋 视频 android,PageStateManager 在张鸿洋的 LoadingAndRetryManager 的基础上改写,优化 api,封装 @codeKK Android开源站...
  19. 发明专利申请流程以及时间
  20. 苹果电脑导出android文件怎么打开,爱思助手Mac版教程:如何把文件导出到移动硬盘?...

热门文章

  1. 计算机win7无法安装,新机装不了Win7?照这个方法5分钟搞定!
  2. sdp ddp内存怎么分_旗舰手机跑分66万+,缩短与PC差距,手机成生产力工具也许不是梦...
  3. delve 调试带参数_带你学够浪:Go语言基础系列-环境配置和 Hello world
  4. tina中信号带宽_关于通频带,3dB带宽,三阶截点和1dB压缩点,截止频率,频率范围,带宽,特征频率(中心频率),截止频率和增益(db)...
  5. ES迁mysql_使用kafka连接器迁移mysql数据到ElasticSearch
  6. springmvc与mysql实例_Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
  7. html输入密码跳转页面_【小乔锦囊】角色/仓库密码无法清除,怎么办?
  8. java 向上舍入_介绍Java的大数类(BigDecimal)和八种舍入模式
  9. python 项目构建工具_GitHub - shjlone/emake: 你见过的最简单的 GCC/CLANG 项目构建工具(python3版本)...
  10. Mysql 零距离-入门(一)