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

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

栗子:

1 #coding=utf-8

2 classItem():3 def __init__(self,name,price):4 self.name=name5 self.price=price6 #创建一个Item对象,将之赋值给it变量

7 it = Item('鼠标',29.8)8 #打印it所引用的Item对象

9 print(it)

打印如下:

解释:上面程序创建了Item对象,然后使用print() 方法输出Item 对象。

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

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

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

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

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

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

python中repr方法_Python中的常见特殊方法—— repr方法相关推荐

  1. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  2. python中定义数据结构_Python中的数据结构—简介

    python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...

  3. python中的str方法和repr方法_Python中 的 __str__ 方法和 __repr__ 方法的区别有哪些

    Python中 的 __str__ 方法和 __repr__ 方法的区别有哪些 发布时间:2020-11-05 17:11:48 来源:亿速云 阅读:95 作者:Leah 本篇文章给大家分享的是有关P ...

  4. python编写ATM类_Python中编写类的各种技巧和方法

    有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling).你可以把它当作一个教程, ...

  5. python中sorted用法_Python中sorted()方法的用法

    1.先说一下iterable,中文意思是迭代器. Python的帮助文档中对iterable的解释是:iteralbe指的是能够一次返回它的一个成员的对象.iterable主要包括3类: 第一类是所有 ...

  6. python反爬虫破解_python中绕过反爬虫的方法总结

    我们在登山的途中,有不同的路线可以到达终点.因为选择的路线不同,上山的难度也有区别.就像最近几天教大家获取数据的时候,断断续续的讲过header.地址ip等一些的方法.具体的爬取方法相信大家已经掌握住 ...

  7. python获取方法的装饰方法_python中的方法和装饰器

    [TOC] 装饰器 python中的装饰器(decorator)是在pep 318中被首次引入,它的本质是一个函数这个函数是接受其它参数为参数,并且用一个新的,修改后的函数作为替换,最常见的装饰器就c ...

  8. python中静态变量_Python中的静态变量和方法

    python中静态变量 Defining static variable and method is a common programming concept and is widely used i ...

  9. python数据预处理的方法_python中常用的九种数据预处理方法

    python中常用的九种预处理方法分享 本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardizat ...

最新文章

  1. 2011年排名前七位的Linux操作系统。
  2. P1739表达式括号匹配
  3. C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef
  4. 树莓派Linux内核源码配置、编译、挂载(boot/kernal/根文件)、开启新内核
  5. #华为云·寻找黑马程序员#微服务-你真的懂 Yaml 吗?
  6. 测试管理工具QC第一篇-QC安装步骤(史上最详细的图解过程)-第一篇
  7. 机器学习实践测试驱动的开发方法pdf
  8. Spark sql读取数据库和ES数据进行处理代码
  9. 主流编程语言最好的编辑器,你的工具用对了吗?
  10. NLTK文本分割器是如何工作的
  11. image caption
  12. 5位数的数字黑洞是多少_五位数数字黑洞编程
  13. Radare2 框架介绍及使用
  14. 飞行汽车能顺利上天吗?
  15. 汽车高级驾驶辅助系统ADAS功能盘点
  16. 新媒体运营胡耀文教程:产品运营视阈下的数据分析
  17. 厦门情侣必去浪漫的餐厅
  18. 小米10谷歌连携失败_第一批用户反馈小米手表问题多,产品总监发长文解答
  19. 解决Chrome无法自动同步书签
  20. 阿里云服务器不能发邮件的解决方法

热门文章

  1. 《简明python教程》的学习笔记
  2. python写自动抢购脚本_Python实现自动上京东抢手机
  3. 【Android】XUtils——你值得拥有!
  4. 解决U盘在mac air下格式化后在windows上无法显示
  5. WiFi连接风险造成个人信息外泄 网络安全需加强
  6. 暂时不支持APK Signature Scheme v2,解决方案
  7. 微信小程序放大招,微信小游戏重磅上线
  8. 计算机远程桌面连接开启,开启远程桌面【方法步骤】
  9. UE4(虚幻4)拾取钥匙开门
  10. 帝国CMS7.5仿《酷酷游戏网》源码/帝国CMS手游综合门户网站模板免费分享