__str__和__repr__
目录
- 一、__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__相关推荐
- python的class的__str__和__repr__(转)
本文参考自: https://stackoverflow.com/questions/18393701/the-difference-between-str-and-repr?noredirect=1 ...
- python中__str__与__repr__
(1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: 1 class adder: 2 def __init__(self,value=0): 3 sel ...
- python中 __str__和__repr__
如果要把一个类的实例变成 str,就需要实现特殊方法__str__(): class Person(object):def __init__(self, name, gender):self.name ...
- python中魔法方法__str__与__repr__的区别
提出问题 当我们自定义一个类时,打印这个类对象或者在交互模式下直接输入这个类对象按回车,默认显示出来的信息好像用处不大.如下所示 In [1]: class People: ...: def __in ...
- python中str函数_一文让你彻底搞懂Python中__str__和__repr__?
__str__和__repr__的异同? 字符串的表示形式 我们都知道,Python的内置函数repr()能够把对象用字符串的形式表达出来,方便我们辨认.这就是"字符串表示形式". ...
- python中与0xf2相等的是_python中__str__与__repr__
(1)背景 python中,对于类(自定义类)的实例对象的默认显示既没有太大用处,也不美观.比如: 1 classadder:2 def __init__(self,value=0):3 self.d ...
- python 的__str__和__repr__有什么区别?
__str__和__repr__Python和有什么不一样? __repr__:python对象的表示形式,通常eval会将其转换回该对象 __str__:是您所认为的文本形式的对象 例如 >& ...
- 【Python面向对象编程】第11篇 特殊方法之__str__和__repr__
本篇我们介绍如何利用 Python __str__ 和 __repr__ 方法定义对象的字符串表示,以及它们之间的区别. __str__ 方法简介 以下代码定义了一个类 Person: class P ...
- __Str__和__repr__有什么区别?
文章来源:__Str__和__repr__有什么区别? - 代码领悟code05.com 提问:__Str__和__repr__有什么区别? Python中的__str__和__repr__有什么区别 ...
- python中 str 和 repr_Python中__str__和 __repr__
__str__, __repr__ 是python类中的两个魔术方法,前者是在类实例当作字符串时调用,后者通常给程序员调试信息时给输出,都可以直接显示类信息.__repr__ = __str__,简单 ...
最新文章
- DeepMind论文:深度压缩感知,新框架提升GAN性能
- Django之ModelForm验证
- 1.25 包(package)详解
- python注释可以辅助程序调试吗_Python 注释
- java 统计图 mysql_java实现各种数据统计图(转)
- linux笔记之 vi编辑器和用户的配置文件及提权
- Python 的and 运算
- React with Webpack - 3: 内联image、font
- UVa 11636 Hello World!
- 【论文翻译】HeteSim:异构网络中相关性度量的通用框架
- python爬取苏州天气并用excel来保存
- el-table——可合并单元格的表格
- 解决WINDOWS 7中显示摄像头的简易方法
- 2018北大计算机复试线,北京大学历年考研复试分数线_2018考研分数线
- Linux-删除文件空间不释放问题解决
- codeforces 735D Taxes(数论)
- SqlDataReader循环取值
- 没有tools.jar包的解决办法
- SSH安全审计Tool - ssh-audit
- opencv-python 4.2 函数手册