Python学习:__repr__和__str__区别

https://blog.csdn.net/nanhuaibeian/article/details/86694581

文章目录

一、 `__repr__`

二、 `__str__`

三、总结

一、 __repr__

class Name:

def __init__(self,name):

self.name = name

1

2

3

上面打印类对象并不是很友好,显示的是对象的内存地址

此时我们重构 __repr__

class Name:

def __init__(self,name):

self.name = name

def __repr__(self):

return 'Name: %s' % self.name

1

2

3

4

5

重构__repr__方法后,不管直接输出对象(面向开发者)还是通过print(面向用户)打印的信息都按我们__repr__方法中定义的格式进行显示了

二、 __str__

此时我们尝试下重构__str__

class Name:

def __init__(self,name):

self.name = name

def __str__(self):

return 'Name: %s' % self.name

1

2

3

4

5

此时,直接输出对象(面向开发者)显示对象的内存地址,使用print输入对象显示的是友好提示

三、总结

如果要把一个类的实例变成 str,就需要实现特殊方法__str__()

__repr__和__str__这两个方法都是用于显示的,__str__是面向用户的,而__repr__面向开发者

想要直接输出对象(面向开发者)和使用 print 输入对象都显示的是友好提示除了重构__repr__,还可以重构__str__实现

class Name:

def __init__(self,name):

self.name = name

def __str__(self):

return 'Name: %s' % self.name

__repr__ = __str__

1

2

3

4

5

6

————————————————

版权声明:本文为CSDN博主「南淮北安」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/nanhuaibeian/article/details/86694581

(0)

相关推荐

  • 反射,双下方法

    一. 反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序 ...

  • Python获取对象信息之内置函数dir()

    对于类对象或实例对象,可以调用内置函数dir()获取其所有可以访问的属性和方法(包括从父类中继承的属性和方法)的列表.类对象与实例对象的结果是有区别的,类对象的结果不包括实例属性. 示例: #codi ...

  • Python中classmethod和staticmethod的区别

    今天来写一下装饰器classmethod和staticmethod这两个关键词.一般实现书写类结构体方法有三种,分别是实例方法(instancemethod).classmethod.staticme ...

  • 温故而知新--day2

    温故而知新--day2 类 类与对象 类是一个抽象的概念,是指对现实生活中一类具有共同特征的事物的抽象.其实列化后称为对象.类里面由类属性组成,类属性可以分为数据属性和函数属性(函数属性又称为类方法) ...

  • python的这些特殊方法你都用过哪些?一起使用后发现有这些规律

    python的这些特殊方法你都用过哪些?一起使用后发现有这些规律

  • Python魔法方法漫游指南:类的表示

    使用字符串等信息来表示类是一个相当实用的特性.比方说你在调试代码时,会频繁使用 print() 等函数来获取对象信息,其背后就是隐式调用了将类转化为字符串的魔法方法.相对应的,还有另一部分魔法方法用于 ...

  • Python常用魔术方法

    什么是魔术方法? 在Python中,所有以双下划线__包起来的方法,统称为Magic Method(魔术方法),它是一种的特殊方法,普通方法需要调用,而魔术方法不需要调用就可以自动执行. 魔术方法在类 ...

  • tuple和list有什么区别?Python学习

    在Python中,list代表列表,tuple代表元组,那么它们之间有何区别呢?如何进行区分?我们通过以下文章来了解一下吧. list: 1.是一种有序的集合,可以随时添加和删除其中元素; 2.访问l ...

  • Tcp协议和udp协议有什么区别?Python学习分享

    很多Python程序员面试找工作的时候,经常会被问到关于网络编程的问题,比如TCP协议和udp协议有什么区别.Post和get有什么区别--你知道它们之间有什么差异吗?不知道,就跟着小编往下看. Tc ...

  • Python学习之脚本和网页的区别!

    学习Python的时候,想必很多人都听说过脚本和网页吧,也经常会有人问Python脚本和网页有什么区别?今天小编为大家整理了一下内容,我们一起来看看吧. Python是一种计算机程序设计语言,一种面向 ...

  • Django和Flask框架区别?Python学习

    学习Python的过程中,Django框架和Flask框架是比较常见的,各具有非常优异的表现,因此很多人就会问Django和Flask框架有什么区别?该如何选择?我们来看看吧. Django和Flas ...

  • 集合和列表有什么区别?Python学习教程

    学习Python的人应该都听说过集合和列表,也知道集合是处理数学问题的工具,列表是处理数据友好的工具,那么它们之间有什么区别呢?我们一起来看看吧. 什么是集合呢?集合是无序的.不重复的数据集合,它本身 ...

  • Python学习教程:Python 内置函数最全汇总(上篇)

    Python学习教程:Python 内置函数最全汇总(一) 1 abs() 绝对值或复数的模 In [1]: abs(-6)Out[1]: 6 2 all() 接受一个迭代器,如果迭代器的所有元素都为 ...

  • Python学习教程:Python内置函数大总结(下篇)

    这里接着上次的Python学习教程,给大家总结了Python 剩下的33个内置函数. 31 hash() 返回对象的哈希值 In [112]: hash(xiaoming)Out[112]: 6139 ...

  • Python学习之路第二节Python语句缩进和注释(代码块以缩进开始以第一条未缩进的行结束缩进量取决于您但是在整个块中缩进量必须一致)

    (代码块以缩进开始以第一条未缩进的行结束缩进量取决于您但是在整个块中缩进量必须一致) Python语句 Python解释器可以执行的指令称为语句.例如,a = 1是一个赋值语句.if陈述,for陈述, ...

  • Python和Matlab有什么区别?一分钟看懂!

    俗话说得好:技多不压身!近几年,随着社会的发展,竞争越来越大,为了获得长久发展,很多人都开始转行学技术,这其中有人会选择学Python,当然也有人想要学Matlab,那么Python和Matlab哪个 ...