“专业人士笔记”系列目录:创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com

有两个函数可用于获取对象的可读表示 ,常用于打印输出及类型转换:

repr(x) : 结合eval函数使用通常会将该变量的结果转换回原始对象,即将对象转化为供编译器(即机器)读取的形式。

str(x) : 返回描述对象的可读字符串(即人类可读),由于会自动类型转换,这可能隐藏了一些技术转换细节。

补充介绍:eval()

函数用来执行一个字符串表达式,并返回表达式的值

如下代码:

>>>x = 7

>>> eval( '3 * x' )

#输出:21

注:

repr()

对于许多变量类型,此函数尝试返回一个字符串,它会尽量把原始相同的值作为参数传递给其他函数,比如结合eval()函数使用;同时它会传递一些其它的信息,包括名称、所在内存地址等等对象信息,以保证变量的原始传递,而不丢失机器信息

str()

对于字符串,它返回字符串本身。这与repr(object)的区别在于,str(object)并不总是试图返回一个eval()可以接受的字符串。相反,它的目标是返回一个可打印的或“人类可读的”字符串。如果没有给出参数,则返回空字符串

举例1:

s = """w'o"w"""

repr(s) # 输出: '\'w\\'o"w\''

str(s)

#输出: 'w\'o"w'

eval(str(s)) == s # 报语法错误

eval(repr(s)) == s # 输出:True

举例2:

import datetime

today = datetime.datetime.now()

str(today)

#输出: '2016-09-15 06:58:46.915000'

repr(today)

# 输出: 'datetime.datetime(2016, 9, 15, 6, 58, 46, 915000)'

看到没有,人类可读和机器可读其实有本质的区别

在编写类时,你可以覆盖这些方法来做任何你想做的事情 :

class Represent(object):

def __init__(self, x, y):#注:__init_是类class的构造函数

self.x, self.y = x, y

def __repr__(self):

return "Represent(x={},y=\"{}\")".format(self.x, self.y)

def __str__(self):

return "Representing x as {} and y as {}".format(self.x, self.y)

使用上面的类,我们可以看到以下结果:

r = Represent(1, "Hopper")

print(r)

#打印默认调用了__str__函数

print(r.__repr__)

# 显式调用了 __repr__方法,打印了: '

#返回结果有点难懂,不用管,反正就是机器可以读懂

rep = r.__repr__()

# 将__repr__函数的返回值,赋值给了rep变量

print(rep)

#由于调用了print函数,所以自动调用了str函数,将返回变成了人类可读的

#打印 'Represent(x=1,y="Hopper")'

r2 = eval(rep) # 返回表达式结果

print(r2)

#按照__str__里面的格式输出,因为print默认调用的是str函数

print(r2 == r)

#输出false,因为这两个已经是完全不同的对象

好了,今天的分享就到这里,禁止转载,违者必究

python方法和函数的格式是完全一样的_Python成为专业人士笔记-返回变量形式函数- str() 和 repr()...相关推荐

  1. [转载] [转载] python 去除字符串的标点符号 用_Python成为专业人士笔记–String字符串方法

    参考链接: Python字符串| 十六进制 hexdigits 参考链接: Python的字符串Strings decode "专业人士笔记"系列目录: 创帆云:Python成为专 ...

  2. [转载] python 去除字符串的标点符号 用_Python成为专业人士笔记–String字符串方法

    参考链接: Python的字符串Strings decode "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.z ...

  3. format 函数包含_Python成为专业人士笔记-高级对象Format格式化

    "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com 在存储和转换数据输出供查看时,字符串格式可能 ...

  4. angular 字符串转换成数字_Python成为专业人士笔记–String字符串方法

    "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com 更改字符串的大小写 Python的字符串类型 ...

  5. assertionerror python_Python成为专业人士笔记–内置模块Modules和函数Functions

    "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com 模块是一个包含Python定义和语句的文件, ...

  6. python的基本语法、数据类型、运算符及基本操作_Python教程基础语法、变量基本使用和算术运算符...

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 · 变量定义 · 变量的类型 · 变量的命名 01. 变量定义 · 在 Python 中,每个变量 在使用前都必须赋值,变量 赋 ...

  7. Kotlin学习笔记1——变量、函数

    Kotlin学习笔记1 (学习教材为<第一行代码(第三版)>by郭霖) 1.Kotlin概述 ​ Java虚拟机不关心class文件的编译来源,即只要是符合规格的class文件,Java虚 ...

  8. python列表操作计算列表长度并输出_Python成为专业人士笔记–List列表

    专业人士笔记"系列目录:创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com Python列表是Python程序中广泛使用的一种通用数据 ...

  9. math python 向上取整_Python成为专业人士笔记-各数学运算操作深度剖析

    "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com Python可以执行常见的数学运算符,包括整 ...

最新文章

  1. 观点:AI 与自动化是矛盾的
  2. my friends
  3. github上搭建个人博客
  4. MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache...
  5. Context完全解析
  6. 对话框Flags的设置值
  7. @resource 与 @autowired
  8. 页面放在哪_思维制胜!PPT内容巨多的页面,这样排版更高大上
  9. python合并多个txt文件_python如何合并多个txt文件删除所有重复行并生成新文件
  10. (3)插入排序之一 直接插入排序
  11. Java小白的干货铺子(四)
  12. 2021-06-16异步调用 CompletableFuture
  13. 计算机室和电子备课室管理制度,电子备课室管理制度
  14. SQL基本语法总结(含SQL代码)
  15. Paypal支付跳转失败的原因及解决办法
  16. react native 自定义Image实现预加载图片及错误之后图片显示
  17. 短视频sdk:选择一个靠谱的短视频SDK 你需要了解这些
  18. ubuntu 18.04 配置深度学习环境
  19. [洛谷]P1234 小A的口头禅 (#模拟)
  20. python——删除文件夹下的所有文件和子文件夹(含代码)

热门文章

  1. Kali Linux 2020.1修改系统语言
  2. Xamarin XAML语言教程基本页面ContentPage占用面积内容页面的派生关系与属性
  3. iOS Sprite Kit教程之场景的设置
  4. 域名后缀php做跳转首页,手机移动端网站和电脑PC端网站域名使用与跳转PHP代码...
  5. conda安装tensorflow-gpu简洁版_笔记本的垃圾显卡也能装Tensorflow GPU版,简明教程
  6. spring用xml还是java_Spring中如何混用XML与Java装配方式
  7. ajax返回一直进入error_解决ajax返回验证的时候总是弹出error错误的方法
  8. 初步探索创伤性脑损伤后平衡功能障碍的神经机制
  9. 他在京东每天做1000万图灵测试
  10. 扎克伯格All in元宇宙,公司更名Meta,「脸」不要了