目录

  • 一、__str__
  • 二、__repr__

一、__str__

  • 打印时触发
class Foo:passobj = Foo()
print(obj)
<__main__.Foo object at 0x10d2b8f98>
dic = {'a': 1}  # d = dict({'x':1})
print(dic)
{'a': 1}
  • obj和dic都是实例化的对象,但是obj打印的是内存地址,而dic打印的是有用的信息,很明显dic的打印是非常好的
class Foo:def __init__(self, name, age):"""对象实例化的时候自动触发"""self.name = nameself.age = agedef __str__(self):print('打印的时候自动触发,但是其实不需要print即可打印')return f'{self.name}:{self.age}'  # 如果不返回字符串类型,则会报错obj = Foo('nick', 18)
print(obj)  # obj.__str__() # 打印的时候就是在打印返回值
打印的时候自动触发,但是其实不需要print即可打印
nick:18
obj2 = Foo('tank', 30)
print(obj2)
打印的时候自动触发,但是其实不需要print即可打印
tank:30

二、__repr__

  • str函数或者print函数--->obj.__str__()

  • repr或者交互式解释器--->obj.__repr__()

  • 如果__str__没有被定义,那么就会使用__repr__来代替输出

  • 注意:这俩方法的返回值必须是字符串,否则抛出异常

class School:def __init__(self, name, addr, type):self.name = nameself.addr = addrself.type = typedef __repr__(self):return 'School(%s,%s)' % (self.name, self.addr)def __str__(self):return '(%s,%s)' % (self.name, self.addr)s1 = School('oldboy1', '北京', '私立')
print('from repr: ', repr(s1))
from repr:  School(oldboy1,北京)
print('from str: ', str(s1))
from str:  (oldboy1,北京)
print(s1)
(oldboy1,北京)
s1  # jupyter属于交互式
School(oldboy1,北京)

转载于:https://www.cnblogs.com/nickchen121/p/10990811.html

__str__和__repr__相关推荐

  1. python的class的__str__和__repr__(转)

    本文参考自: https://stackoverflow.com/questions/18393701/the-difference-between-str-and-repr?noredirect=1 ...

  2. python中__str__与__repr__

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

  3. python中 __str__和__repr__

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

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

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

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

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

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

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

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

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

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

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

  9. __Str__和__repr__有什么区别?

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

  10. python中 str 和 repr_Python中__str__和 __repr__

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

最新文章

  1. DeepMind论文:深度压缩感知,新框架提升GAN性能
  2. Django之ModelForm验证
  3. 1.25 包(package)详解
  4. python注释可以辅助程序调试吗_Python 注释
  5. java 统计图 mysql_java实现各种数据统计图(转)
  6. linux笔记之 vi编辑器和用户的配置文件及提权
  7. Python 的and 运算
  8. React with Webpack - 3: 内联image、font
  9. UVa 11636 Hello World!
  10. 【论文翻译】HeteSim:异构网络中相关性度量的通用框架
  11. python爬取苏州天气并用excel来保存
  12. el-table——可合并单元格的表格
  13. 解决WINDOWS 7中显示摄像头的简易方法
  14. 2018北大计算机复试线,北京大学历年考研复试分数线_2018考研分数线
  15. Linux-删除文件空间不释放问题解决
  16. codeforces 735D Taxes(数论)
  17. SqlDataReader循环取值
  18. 没有tools.jar包的解决办法
  19. SSH安全审计Tool - ssh-audit
  20. opencv-python 4.2 函数手册

热门文章

  1. div+css 背景图片的定位取图问题详解
  2. MindNode 5 for Mac(思维导图)中文版
  3. SnippetsLab:让代码信手拈来
  4. 如何在 iPhone 和 iPad 上快速找到合适照片?
  5. OmniPlan Pro 4 for Mac(项目流程管理工具)
  6. Wondershare Recoverit for Mac(数据恢复软件)
  7. Mac勿扰模式使用技巧
  8. 快捷笔记应用Side Notes Mac
  9. 递归,yield,参数槽
  10. CodeIgniter框架中的多语言