__repr__ 方法的作用

__repr__ 方法的作用Python 有一个内置的函数叫 repr 它能把一个对象用字符串的形式表达出来以便辨认 这就是 字符串表示形式 repr 就是通过 repr 这个特殊方法来得到一个对象的字符串表示形式的 如果没有实现 repr 当我们在控制台里打印一个向量的实例时 得到的字符串可能会是 Vectorobject 交互式控制台和调试程序 debugger 用 Vectorobject

  Python 有一个内置的函数叫 repr,它能把一个对象用字符串的形式表达出来以便辨认,这就是“字符串表示形式”。repr 就是通过 repr 这个特殊方法来得到一个对象的字符串表示形式的。如果没有实现 repr,当我们在控制台里打印一个向量的实例时,得到的字符串可能会是 <Vector object at 0x10e>

 交互式控制台和调试程序(debugger)用 repr 函数来获取字符串表示形式;在老的使用% 符号的字符串格式中,这个函数返回的结果用来代替 %r 所代表的对象;同样,str.format 函数所用到的新式字符串格式化语法(https://docs.python.org/2/library/string.html#format-string-syntax)也是利用了 repr,才把!r 字段变成字符串。

reprstr 的区别在于,后者是在 str() 函数被使用,或是在用 print 函数打印一个对象的时候才被调用的,并且它返回的字符串对终端用户更友好。如果你只想实现这两个特殊方法中的一个,repr 是更好的选择,因为如果一个对象没有 str 函数,而 Python 又需要调用它的时候,解释器会用 repr 作为替代。

“Difference between str and __repr__Python”(http://stackoverflow.com/questions//difference-between-str-and-repr-inpython)是 Stack Overflow 上的一个问题,Python 程序员 Alex Martelli 和 MartijnPieters 的回答很精彩。

下面是个简单的例子:

#!/usr/bin/env python # -*- coding: utf-8 -*- class Test(): def __init__(self, name): self.name = name def __repr__(self): return '这个类的名字是: % s' % self.name Test('科学') 

这是两种运行方式的结果:

在这里插入图片描述在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230426.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月23日 下午5:01
下一篇 2026年2月23日 下午5:22


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号