__str__ 和 __repr__
来源:互联网 发布:telnet如何测试端口 编辑:程序博客网 时间:2024/04/30 04:49
From: http://blog.csdn.net/yyt8yyt8/article/details/7030416
Reference: http://zhidao.baidu.com/link?url=Sc4LZLKx1Cax503f9pv0mY2jel9FMpTR0VWt4aNhDQL2XfBkuSw1IdNB_ptK2CAcMMu9sUdZXQpa17zJo54DdFlfzTG9SYaHiRowRwEdTTa
内建函数str()和repr() (representation,表达,表示)或反引号操作符(``)可以方便地以字符串的方式获取对象的内容、类型、数值属性等信息。str()函数得到的字符串可读性好(故被print调用),而repr()函数得到的字符串通常可以用来重新获得该对象,通常情况下 obj==eval(repr(obj)) 这个等式是成立的。这两个函数接受一个对象作为其参数,返回适当的字符串。
事实上repr()和``做一样的事情,返回一个对象的“官方”字符串表示。其结果绝大多数情况下(不是所有)可以通过求值运算(内建函数eval())重新得到该对象。
str()则不同,它生成一个对象的可读性好的字符串表示,结果通常无法用eval()求值,但适合print输出。
如下例:
>>> class D(object):... def __str__(self):... return "a __str__"... def __repr__(self):... return "a __repr__"...>>> dr = D()>>> print dra __str__>>> dra __repr__>>> "%s" % dr'a __str__'>>> "%r" % dr'a __repr__'
为什么有了repr()还需要``?
Python中,有的操作符和函数是做同样的事情,原因是某些场合下函数会比操作符更适合使用,比如函数对象可作为参数传递。双星号(**)乘方运算和pow()内建函数都返回x的y次方.
0 0
- python - __str__ 和 __repr__
- python - __str__ 和 __repr__
- python - __str__ 和 __repr__
- __str__ 和 __repr__
- python - __str__ 和 __repr__
- python __str__ 和 __repr__
- __str__和__repr__比较
- __str__()和__repr__()的调用
- 【ZZ】python - __str__ 和 __repr__
- __repr__和__str__的区别
- python中 __str__和__repr__
- Python中__str__和__repr__
- python __repr__和__str__ 的区别
- __str__和__repr__有啥区别呢?
- Python中__repr__和__str__区别
- python 的特殊方法 __str__和__repr__
- python 的特殊方法 __str__和__repr__
- python中__str__和__repr__的区别
- REST
- 关键词笔记
- [Linux]oclHashcat Examples of lots of different hash types
- lzg_ad: FBWF配置详解
- 【持久化框架】Mybatis与Hibernate的详细对比
- __str__ 和 __repr__
- 给电脑换源 npm 国内镜像 cnpm
- webView 滚动问题
- 数据结构与算法分析-素数计算
- Windows下安装MySQL5.7的解压版本
- 算法训练 寻找数组中最大值 (答案未定,欢迎指教)
- ovs-appctl 用户手册中文翻译
- iconv_open()函数
- 【Unity】关于项目中画线设定