内建函数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 dr
a __str__
>>> dr
a __repr__
>>> "%s" % dr
'a __str__'
>>> "%r" % dr
'a __repr__'

为什么有了repr()还需要``? 

Python中,有的操作符和函数是做同样的事情,原因是某些场合下函数会比操作符更适合使用,比如函数对象可作为参数传递。双星号(**)乘方运算和pow()内建函数都返回x的y次方.

最新文章

  1. js模版引擎handlebars.js实用教程——目录
  2. flash与js交互
  3. bootstrap学习总结-01 环境准备
  4. cryptDB安装分析
  5. jquery.form插件
  6. windows Android开发环境快速搭建和部署
  7. .net orm比较之dapper和Entity Framework6的简单测试比较
  8. iOS8中的UIActionSheet添加UIDatePicker后,UIDatePicker不显示问题
  9. wpf RadioButton控件的一个bug,onpropertychanged后会修改旧属性的值
  10. android使用属性动画代替补间动画
  11. 保垒机SSH登录脚本
  12. asp-net-web-api 自定义URl插件
  13. [Android学习笔记]try-catch
  14. MySQL索引入门
  15. Sphinx配置过程
  16. Java获取Object属性值
  17. java应用的jar包多合一
  18. HashMap循环过程中删除元素发生ConcurrentModificationException的源码分析
  19. ubuntu installs matlab2017a
  20. c# WebApi之解决跨域问题:Cors

热门文章

  1. Md5Hash的测试
  2. enter 键登录的实现
  3. .NET/MVC-ViewBag、ViewData、TempData区别
  4. iOS 使用 AVCaptureVideoDataOutputSampleBufferDelegate获取实时拍照的视频流
  5. HTML 的超链接 a 标签中如何设置其宽度和高度?
  6. Android资源图片读取机制
  7. ubuntu14.04无法连接有线连接问题
  8. 不吐不快之EJB演练——开篇概述
  9. Hibernate HQL详解
  10. R快速创建个文件