python中str方法使用

无聊的使用案例

关于str和repr,网上有很多的介绍,个人觉得那并非在编程中常常使用的场景。比如下面的例子。

region = "CHINA"print(region)print(str(region))print(repr(region))#运行结果"C:Program FilesPython38python3.exe" D:/python/python_210710/exercise_03/str_repr.pyCHINACHINA'CHINA'

编码的是为了方便人来阅读的,所以呢,个人觉得对于一个变量来说,它是什么格式,值是什么,print和type就可以给我们答案,这里并不需要使用什么str和repr的转换了,多此一举。

那么真正的str和repr有什么用呢?他们又是什么呢?

python3|str和repr怎么用?看过来了,这才是真正的使用场景

使用场景

__str__()函数:将值转化为适于人阅读的字符串的形式
__repr__()函数:将值转化为供解释器读取的字符串形式

这里为什么会这样讲呢?需要解释一下的。

Python是对象编程语言,一切皆对象。所以,编程中很多时候都是用的对象的思想,那么对象本身和机器的交互由解释器完成,那么对象对于我们而言,如果知识一个object,那么看上去一点都不友好。

class Student: def __init__(self, name, age, score): self.name = name self.age = age self.score = score def read(self): passs =Student("小明", 12, 88)print(s)"C:Program FilesPython38python3.exe" D:/python/python_210710/exercise_03/str_repr.py<__main__.Student object at 0x000001AFBC055640>

这是什么鬼?<__main__.Student object at 0x000001AFBC055640>,仅仅就知道这是一个Student的对象,它包含什么,其实一点都不知道。

所以为了解决这个问题,特别需要知道的就是__str__()和__repr__()

那下面这样的格式看起来是不是好一点。

python3|str和repr怎么用?看过来了,这才是真正的使用场景

这样的格式是不是更好呢?

python3|str和repr怎么用?看过来了,这才是真正的使用场景

同样的是打印这个学生对象s,我们就可以很清楚地知道它包含了哪些属性。

怎么用呢?

使用__str__() 或者 __repr__()中的任意一个方法,在定义类中加上这样的转化方式,不需要手动地去print(s.name,s.age)这样的方法,我们只需要print(s)就可以看到细节。

很明显,通过上面的演示,__str__的可读性更强,而__repr__的返回结果更具有准确性,更加的适合开发者。

我们在写类的时候,最好至少添加一个__repr__方法,来保证类到字符串的转换具有自定义的有效性。

__str__是可选的,因为在默认情况下,__str__方法默认实现调用的是__repr__方法,所以在对象转字符串时候,找到底层str方法之后,会调用重写的__repr__方法

需要注意的是,如果__str__和__repr__同时存在的时候,__str__的结果会被显示。

python3|str和repr怎么用?看过来了,这才是真正的使用场景

同时注意这两个方法的返回必须是字符串,否则会抛出异常。

所以记住了,以后再定义类的时候,初始化函数之后,一定要记得加一个__repr__了。

def __repr__(self): return ("Student(%s, %s, %s)") % (self.name, self.age, self.score) return (f"Student({self.name}, {self.age}, {self.score})")

以上两种方式都可以,你快来试试吧。

python3|str和repr怎么用?看过来了,这才是真正的使用场景

(0)
上一篇 2023年4月26日 下午3:01
下一篇 2023年4月26日 下午3:06

相关推荐

  • 奥运会和冬奥会的区别是什么,冬奥会的比赛项目和奥运会一样吗

    冬奥会只是奥运会的其中一种赛事,奥运会包含有冬奥会,这是最直接的区别。奥运会的范围很广泛,包括夏季奥运会、夏季残奥会、冬季奥运会、冬季残奥会、夏季青奥会、冬季青奥会、夏季特奥会、冬…

    2023年2月8日
    0
  • 教你如何接吻,如何接吻?接吻的方法

    1.轻吻 这是在男女初期的时候,这是一种含蓄的表达方式。 可以大幅度的拉近你们俩的关系,让你们俩小鹿乱撞。 那么轻吻讲究的是什么呢?一个字轻 怎么做呢, 如蜻蜓点水一般,轻轻略过带…

    2022年11月21日
    0
  • 2021年北京地铁儿童免票身高要求

    1米、1.2米、1.3米、 1.4米…… 儿童身高究竟多少 才能享受免票? “电影院儿童免票身高有没有统一标准?”近日,一名网友在武汉城市留言板反映,他春节假期准备带娃看电影,在购…

    2023年6月8日
    0
  • 中国最北的城市漠河温度

    供热工人查看煤炭燃烧情况。 邵天李 摄 供热工人查看煤炭燃烧情况。 邵天李 摄 中新网漠河9月17日电(邵天李 姜辉)受新一轮冷空气影响,地处中国最北端的黑龙江省大兴安岭漠河市气温…

    2023年5月14日
    0
  • 梦见棺材是什么意思有什么预兆

    梦见棺材是一种常见的梦境,它往往让人感到害怕和不安。那么,梦见棺材到底意味着什么呢?下面就为大家简单介绍一下。 首先,梦见棺材通常代表着身体上的不适或者疾病。如果你最近身体不太好,…

    生活百科 2023年9月11日
    0
  • 白萝卜可以放冰箱储存吗,白萝卜可以放冰箱吗

    本文目录 1. 白萝卜可以放冰箱储存吗 2. 白萝卜可以放冰箱吗 3. 白萝卜可以冻吗 白萝卜可以放冰箱储存吗 当然可以。 白萝卜是可以放在冰箱的。白萝卜放在冰箱里可以最大限度地保…

    生活百科 2023年12月20日
    0
  • 智慧故事精选,领导智慧小故事

    领导对企业的作用是致命的,致命的好或者致命的坏—-《人世间》常宇怀 领导是船长舵手,员工是船员划桨。方向正确则驶向光辉彼岸,方向错误则驶向深渊。 一将无能,累死三军也是…

    生活百科 2023年6月10日
    0
  • 苹果se3大概多少钱2022

    苹果公司一向以高端定位,高价位的产品而著名。而苹果SE系列则是为了满足一部分用户的需求而推出的中端产品线。那么,2022年苹果SE3的价格又将如何呢? 目前尚无确切的消息透露苹果S…

    生活百科 2023年6月19日
    0
  • 羽毛球混双今天赢了吗(羽毛球混双比赛的战术有哪些)

    既然能你问出这样的问题,那我也几乎可以肯定的说,不是。 双打目的都是为了得分,要是不为了得分,找个人给你喂球得了,练好基础,就不会出现你现在的问题。 为了得分,就要有分区,能力强的…

    生活百科 2023年1月10日
    0
  • 向量的模和绝对值有什么关系(为什么向量的绝对值是模长)

    对于符号“| |”,众所周知代表绝对值意思,如-1的绝对值表示为|-1|。学习高中数学后,这个符号“| |”还代表向量的模意思。向量a的模表示为|a|,向量AB的大小,也就是向量A…

    2023年6月18日
    0

发表评论

登录后才能评论