博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python内置函数Str() VS repr() 及__str__() VS __repr__()方法
阅读量:5966 次
发布时间:2019-06-19

本文共 1471 字,大约阅读时间需要 4 分钟。

一、str() VS repr() 函数

1、str()函数把一个对象转化为字符串(供人阅读的形式),repr()函数返回一个对象的字符串表现形式(供解释器读取的形式)

>>>str(234)

'234'

>>>repr(234)

'234'

>>>str('Good Day')

'Good Day'

>>>repr('Good Day')

'' 'Good Day' ''                         # 单引号外面加双引号是什么鬼?

>>> l = 'a list'

>>>str(l)

'a list'

>>>repr(l)

'' 'a list' ''                     #单引号外面加双引号,什么鬼?

2、repr()函数的结果一般能通过eval()求值的方法获取到原对象

>>>eval(repr(l))

'a list'  

3、对于类对象,对类实例调用repr()函数,返回其class、module、address

>>>class Student():

  pass

>>>s = Student()

>>>repr(s)

'<__main__.Student object at 0x000000E6F81dc18>'

>>>str(s) 

'<__main__.Student object at 0x000000E6F81dc18>'

>>>s

<__main__.Student object at 0x000000E6F81dc18>   # 直接显示变量调用__repr__()方法,想要直接显示的结果是可直接阅读的信息,要改写__repr__()方法

>>>print(s)

<__main__.Student object at 0x000000E6F81dc18> # 想打印出可直接阅读的信息,要改写__str__()方法

二、__str__() VS __repr__()

>>>class Readers():

    def __init__(self,nationality):

      self.nationality = nationality

    def __str__(self):

      return 'You are %s.' % self.nationality

>>>s = Readers('Chinese')

>>>print(s)

You are Chinese.

>>>s

<__main__.Readers object at ..........................>     #直接显示依然是class/object/address,因为没有改写__repr__()方法,改写方式和__str__()一样,用简便方法

>>>class Readers():

    def __init__(self,nationality):

      self.nationality = nationality

    def __str__(self):

      return 'You are %s.' % self.nationality

    __repr__ = __str__                                # 简便方法 __repr__ = __str__

>>>s =Readers('Chinese')

>>>s

You are Chinese.

>>>print(s)

You are Chinese

 

转载于:https://www.cnblogs.com/lyu454978790/p/8624036.html

你可能感兴趣的文章
20步打造最安全的Nginx Web服务器
查看>>
创建可用实验快照(二)
查看>>
开源社交系统ThinkSNS——社交与电商的结合
查看>>
MySQL双主(master-master)补充
查看>>
ldap添加自定义字段
查看>>
Vertically aligning HTML
查看>>
Linux之cut命令
查看>>
jedis 用连接池时超时返回值类型错误
查看>>
nginx 查看每秒有多少访问量
查看>>
python正则表达式
查看>>
安装nagios中php安装报错 configure error xml2-config not foud
查看>>
php邮件发送类
查看>>
Python算法题----在列表中找到和为s的两个数字
查看>>
Gson解析Json
查看>>
Spring Cloud with Turbine
查看>>
关于Java浮点数运算精度丢失问题
查看>>
各种主流 SQLServer 迁移到 MySQL 工具对比
查看>>
路由访问控制列表的设计
查看>>
使用firefox44版本,弃用chrome
查看>>
《深入理解Java虚拟机》(二)java虚拟机运行时数据区
查看>>