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

 交互式控制台和调试程序(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/1436703/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 = namedef __repr__(self):return  '这个类的名字是: % s' % self.nameTest('科学')

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

__repr__ 方法的作用相关推荐

  1. 第8.15节 Python重写自定义类的__repr__方法

    一. 引言 前面两节分别介绍了Python类中的__str__和__repr__方法的作用和语法,所有新式类都支持这两个方法,因为object类实现了这两个方法,但实际上各位开发者在自定义类的过程中, ...

  2. python __repr__方法_Python __repr__()方法起什么作用呢?

    摘要: 下文讲述Python中 __repr__()方法的功能说明,如下所示: __repr__()方法的功能: 用于修改实例化对象的print效果, 如:print(实例化对象) 此时则返回 __r ...

  3. Object的finalize()方法的作用是否与C++的析构函数作用相同

    Object的finalize()方法的作用是否与C++的析构函数作用相同 public class Finalization {private static Finalization finaliz ...

  4. 【面向对象编程】(2) 类属性的定义及使用;__repr__()方法

    各位同学好,在上一节中我们学习了类实例化的基本方法:https://blog.csdn.net/dgvv4/article/details/122275348?spm=1001.2014.3001.5 ...

  5. Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?

    这是因为Python3中,str的输出是调用类的实例方法__str__来输出,如果__str__方法没有重写,则自动继承object类的__str__方法,而object类的__str__方法是调用_ ...

  6. python __repr__方法_第8.13节 Python类中内置方法__repr__详解

    当我们在交互环境下输入对象时会直接显示对象的信息,交互环境下输入print(对象)或代码中print(对象)也会输出对象的信息,这些输出信息与两个内置方法:__str__方法和__repr__方法有关 ...

  7. html语言中span,html元素span标签的使用方法及作用

    html元素 标签是一个没有任何语义的行内元素,不对设置任何样式,则不会有任何视觉效果.有关该标签的使用方法及作用详解如下: 标签的定义 标签属于行内元素,无任何特殊语义. 标签主要用于定义文本样式, ...

  8. getId()方法的作用

    getId() 方法的作用非常简单,就是取得正在运行线程的唯一标识. 如下代码演示了 getId() 方法的使用: public class Test15 {public static void ma ...

  9. isAlive()方法的作用

    isAlive() 方法的作用是判断当前的线程是否处于活动状态. 什么是活动状态呢?活动状态就是线程已经启动且尚未终止.线程处于正在运行或准备开始运行的状态,就认为线程是"存活"的 ...

最新文章

  1. ADAS摄像头20个技术挑战
  2. pytorch cat、stack、tranpose、permute、unsqeeze
  3. CSS 强制换行和禁止换行强制换行 和禁止换行样式
  4. rust(20)-字符
  5. 简明代码介绍类激活图CAM, GradCAM, GradCAM++
  6. C# 图片文件文本string格式 传输问题
  7. 第十篇: Timer 控件
  8. 前台等待事件 oracle,Oracle等待事件之buffer busy waits
  9. 数仓大法好!跨境电商 Shopee 的实时数仓之路
  10. 菜鸟篇之Java入门学习【ZT】
  11. server 2008 mysql 报错 0xc000007b_这十个MySQL经典错误,99%的程序员一定遇到过!你呢?...
  12. java esc的_如何用Java中的Receipt打印机和ESC / POS命令提高速度
  13. 临时和永久关闭Selinux
  14. 《C++ SYNTAX》第1章 基础知识
  15. 单机游戏数据库探讨(MySQL嵌入式服务器的使用)(未完)
  16. 程序员,金三银四该不该跳槽?
  17. 商城产品属性数据库设计
  18. No fallbackFactory instance of type class com.ruoyi.system.api.factory.RemoteLogFallbackFactory foun
  19. TM1621数码管驱动
  20. hbase manager 2.0.9 安装

热门文章

  1. 发现一个很有用的微信小程序插件集合
  2. 如何节省1TB图片带宽?解密极致图像压缩!
  3. 基于python实现的抓取腾讯视频所有电影的爬虫
  4. 微信小程序头像上传(二---完结)
  5. 树莓派定时发送图片到服务器
  6. 20个令人惊叹的深度学习应用(Demo+Paper+Code)
  7. 怎样链接计算机一起玩游戏,怎么在投影上打游戏?电脑连接投影玩游戏教程 这样玩游戏才爽!...
  8. 哈夫曼树(一)基本概念与C语言实现
  9. Linux操作系统历史
  10. 时光印象AR相册使用说明