python方法和函数的格式是完全一样的_Python成为专业人士笔记-返回变量形式函数- str() 和 repr()...
“专业人士笔记”系列目录:创帆云: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()...相关推荐
- [转载] [转载] python 去除字符串的标点符号 用_Python成为专业人士笔记–String字符串方法
参考链接: Python字符串| 十六进制 hexdigits 参考链接: Python的字符串Strings decode "专业人士笔记"系列目录: 创帆云:Python成为专 ...
- [转载] python 去除字符串的标点符号 用_Python成为专业人士笔记–String字符串方法
参考链接: Python的字符串Strings decode "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.z ...
- format 函数包含_Python成为专业人士笔记-高级对象Format格式化
"专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com 在存储和转换数据输出供查看时,字符串格式可能 ...
- angular 字符串转换成数字_Python成为专业人士笔记–String字符串方法
"专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com 更改字符串的大小写 Python的字符串类型 ...
- assertionerror python_Python成为专业人士笔记–内置模块Modules和函数Functions
"专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com 模块是一个包含Python定义和语句的文件, ...
- python的基本语法、数据类型、运算符及基本操作_Python教程基础语法、变量基本使用和算术运算符...
变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 · 变量定义 · 变量的类型 · 变量的命名 01. 变量定义 · 在 Python 中,每个变量 在使用前都必须赋值,变量 赋 ...
- Kotlin学习笔记1——变量、函数
Kotlin学习笔记1 (学习教材为<第一行代码(第三版)>by郭霖) 1.Kotlin概述 Java虚拟机不关心class文件的编译来源,即只要是符合规格的class文件,Java虚 ...
- python列表操作计算列表长度并输出_Python成为专业人士笔记–List列表
专业人士笔记"系列目录:创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com Python列表是Python程序中广泛使用的一种通用数据 ...
- math python 向上取整_Python成为专业人士笔记-各数学运算操作深度剖析
"专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!zhuanlan.zhihu.com Python可以执行常见的数学运算符,包括整 ...
最新文章
- 观点:AI 与自动化是矛盾的
- my friends
- github上搭建个人博客
- MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache...
- Context完全解析
- 对话框Flags的设置值
- @resource 与 @autowired
- 页面放在哪_思维制胜!PPT内容巨多的页面,这样排版更高大上
- python合并多个txt文件_python如何合并多个txt文件删除所有重复行并生成新文件
- (3)插入排序之一 直接插入排序
- Java小白的干货铺子(四)
- 2021-06-16异步调用 CompletableFuture
- 计算机室和电子备课室管理制度,电子备课室管理制度
- SQL基本语法总结(含SQL代码)
- Paypal支付跳转失败的原因及解决办法
- react native 自定义Image实现预加载图片及错误之后图片显示
- 短视频sdk:选择一个靠谱的短视频SDK 你需要了解这些
- ubuntu 18.04 配置深度学习环境
- [洛谷]P1234 小A的口头禅 (#模拟)
- python——删除文件夹下的所有文件和子文件夹(含代码)
热门文章
- Kali Linux 2020.1修改系统语言
- Xamarin XAML语言教程基本页面ContentPage占用面积内容页面的派生关系与属性
- iOS Sprite Kit教程之场景的设置
- 域名后缀php做跳转首页,手机移动端网站和电脑PC端网站域名使用与跳转PHP代码...
- conda安装tensorflow-gpu简洁版_笔记本的垃圾显卡也能装Tensorflow GPU版,简明教程
- spring用xml还是java_Spring中如何混用XML与Java装配方式
- ajax返回一直进入error_解决ajax返回验证的时候总是弹出error错误的方法
- 初步探索创伤性脑损伤后平衡功能障碍的神经机制
- 他在京东每天做1000万图灵测试
- 扎克伯格All in元宇宙,公司更名Meta,「脸」不要了