Python中的常见特殊方法—— repr方法

枫铃3年前 (2021-07-23)Python294

在Python中有些方法名、属性名的前后都添加了双下划线,这种方法、属性通常都属于Python的特殊方法和特殊属性,开发者可以通过重写这些方法或者直接调用这些方法来实现特殊的功能。其实前面见过的构造方法__init__() 就是一种特殊方法,开发者可以通过重写类中的__init__方法实现自己想要的初始化逻辑。

Python类中的特殊方法、特殊属性有些需要开发者重新写,有些则可以直接调用。

栗子:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#coding=utf-8
class Item():
    def __init__(self,name,price):
        self.name=name
        self.price=price
#创建一个Item对象,将之赋值给it变量
it = Item('鼠标',29.8)
#打印it所引用的Item对象
print(it)

打印如下:
在这里插入图片描述
解释:上面程序创建了Item对象,然后使用print() 方法输出Item 对象。

运行程序之后可能出现不同的输出结果:at后面的16位十六进制数字可能发生改变。it本来是Item的一个实例对象,但是为什么输出的是这样的字符串?这就是因为有__repr__()方法,控制台打印的其实是__repr__()方法的返回值。所以说打印it 或者是打印 im.__repr__()效果是一样的。

1.__repr__()方法是object类提供的方法,而所有的Python类都是object类的子类,因此所有的Python对象都具有__repr__()方法。所以如果需要将任何对象与字符串进行连接时,都可先调用__repr__()方法将对象转为字符串,再将字符串连接在一起。

  1. __repr__()之所以特殊,是因为它是一个“自我描述”的方法,该方法通常实现场景是:当开发人员直接打印该对象时,系统将会输出该对象的“自我描述”信息,用来告诉外界该对象具有的状态信息。

  2. object类提供的__repr__()方法总是返回该对象实现类的类名+object at + 内存地址值,这个返回值并不能真正实现“自我描述”的功能,因此如果用户需要自定义类能实现“自我描述”的功能,就必须重写__repr__()方法。

大部分时候,重写__repr__()方法总是返回该对象令人感兴趣的信息所组成的字符串。通常可返回如下格式的字符串:

类名[field1=1,field2=2,...]

相关文章

利用python同步windows和linux文件

写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,...

爬虫基本原理

爬虫基本原理 一、爬虫是什么? 百度百科和维基百科对网络爬虫的定义:简单来说爬虫就是抓取目标网站内容的工具,一般是根据定义的行...

Django 函数和方法的区别

函数和方法的区别 1、函数要手动传self,方法不用传 2、如果是一个函数,用类名去调用,如果是一个方法...

Django 知识补漏单例模式

单例模式:(说白了就是)创建一个类的实例。在 Python 中,我们可以用多种方法来实现单例模式&#x...

Django基础知识MTV

Django简介 Django是使用Python编写的一个开源Web框架。可以用它来快速搭建一个高性能的网站。 Django也是一个MVC框架。但是在Dj...

Python mysql 索引原理与慢查询优化

一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。