首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python中__str__() __repr__() 用法

在类定义中,我们通常会看到 __str__() 方法 __repr__() 方法,那么这两个方法作用是什么以及如何使用他们呢?本文便来介绍下这两个方法。...标准库类 我们先通过 date 模块里 today 类来直观认识下 __str__() __repr__() 。...直接输出对象会隐式调用对象 __repr__() 方法。我们也可以直接调用 str() 方法 repr() 方法进行输出。...在这种情况下使用是缺省 __str__() __repr__() 。 类中包含 __str__() 下面在类中添加 __str__() 方法。 >>> class Dog: ......总结 当自定义类中没有定义 __str__() __repr__() 时,在进行对象输出时,会调用默认 __str__() __repr__() ;当类中只包含 __str__() 时,调用

50930
您找到你想要的搜索结果了吗?
是的
没有找到

Python中__str____repr__方法区别

在stackoverflow有一个很精辟回答解释这两个内置方法区别,简单来说,__str__方法是表现给使用者使用,而__repr__方法是给程序员用。...return '__str__' def __repr__(self): return '__repr__' my_book=book() print(my_book) __...str__ my_book Out[13]: __repr__ 我们可以简单看出print方法调用是__str__,因为这是展现给使用者,而直接在python解释器,返回是__repr__方法...import datetime today=datetime.date.today() str(today) Out[16]: '2018-02-15' repr(today) Out[17]: 'datetime.date...(2018, 2, 15)' 管中窥豹,str(today)返回是2018-02-15,我们可以看出来具体时间,而repr(today)返回是datetime.date这个方法,显然我们可以直接使用这个方法实例化

36820

谈一谈Python中str()repr()区别

前言 在学习BeautifulSoup文档时候发现了一个以前不常见Python内建函数repr(),带着好奇对这个内建函数进行了一番搜索学习。...总结 str()与repr()都是Python内建函数,通过它们可以方便地以字符串方式获取对象内容、类型、数值属性等信息。...大多数情况下他们效果相同,但是既然是不同函数肯定有不同地方,概括起来可以这样说str()会将对象转化为可读性较好字符串,而repr()会将对象转化为供解释器读取形式字符串。...一个对象没有适于人阅读解释形式的话,str()会返回与repr()相同值。 其中,数值或list、tuple、字典等这样结构,针对各种函数都有着统一解读方式。...举例 在下列情况下两者效果相同: 123456789101112131415161718192021222324>>> str(123)'123'>>> repr(123)'123'>>> str(

67240

python中str()与repr()函数区别

在 Python 中要将某一类型变量或者常量转换为字符串对象通常有两种方法,即str() 或者 repr() 。...而 print 结合 repr() 实际上是调用对象__repr__方法输出结果。下例中我们用 str 对象直接调用这两个方法,输出结果形式与前一个例子保持一致。 >>> print('123'....因此 str() 与 repr() 不同在于: str() 输出追求可读性,输出格式要便于理解,适合用于输出内容到用户终端。...repr() 输出追求明确性,除了对象内容,还需要展示出对象数据类型信息,适合开发调试阶段使用。...另外如果想要自定义类实例能够被 str() repr() 所调用,那么就需要在自定义类中重载__str__ __repr__方法。

23110

测开之《__repr____str__方法使用》

文章总览图 使用str函数或者print打印对象时会优先触发str方法,没定义str方法情况下,会再去找repr方法,如果都没有,那么就会去找父类str方法。...如果父类没有str方法,会找父类repr方法,如果继承object的话,object里面肯定有str方法。除非是继承一个自己定义类。...在交互环境下输入对象直接通过repr这个内置函数处理对象时候,它只会触发repr方法,如果repr方法不存在,会找父类repr方法,不会去找str方法。 repr方法是str方法备胎。...print打印是由str方法决定,交互环境下是由repr方法决定。...res=repr(m) print(res) strrepr方法都是返回字符串。

39930

Python 魔法方法之 __str__ __repr__

前言 在Pyhton 中,如果想定制化打印出实例对象信息,那可以使用__str____repr__魔法方法来定制化显示。...__str____repr__ 在Python中,打印一个自定义类实例对象所显示信息往往是很不友好,如下所示: >>> class Animal(): ......____repr__ 所起作用就是定制化显示输出信息(你想输出什么就是什么),当然,两者也有区别的,区别如下: •对于printstr内置函数,程序会首先尝试__str__,如果没有__str__...•在交互式回应,repr函数中__repr__会被调用,你可以这么认为,__str__ 是给用户看,__repr__则是给开发者看....kitty' >>> repr(dog) 'Animal:name is kitty' 从上面示例可以看出 print str函数中调用是 __str__, 而在交互式响应中 repr函数中调用

46230

python笔记70 - Python中__repr____str__区别

前言 Python中__repr____str__使用区别 __repr__ 使用 很多时候我们在创建一个类时候,在终端打印类实例,看到是一个类似于这样内容:<XXX object at 0x0000000001222E10...object at 0x000,只有print()输出时候才会打印__str__返回内容 总结 注意:__str__()方法__repr__()方法返回值只能是字符串!...__repr____str__这两个方法都是用于显示,__str__是面向用户,而__repr__面向开发者 关于调用两种方法时机 使用print()时 使用%sf’{}’拼接对象时 使用str...特别地,对于下面两种场景: 用%r进行字符串拼接时 用repr(x)转换对象x时 则会调用这个对象__repr__()方法;若没有,则不再看其是否有__str__()方法,而是显示其内存地址。...当我们想在不同环境下支持不同显示,例如终端用户显示使用__str__,而程序员在开发期间则使用底层__repr__来显示,实际上__str__只是覆盖了__repr__以得到更友好用户显示。

34540

一文让你彻底搞懂`__str__``__repr__`?

__repr__ 接下来我们看一看__str____repr__有哪些异同。...根据Python官方文档定义: __str__:通过str(object)以及内置函数format()print()调用以生成一个对象“非正式”或格式良好字符串表示。返回值必须是字符串对象。...(y) 'pythonic' >>> z = '4' >>> repr(z) "'4'" >>> str(z) # 注意,此处输出结果形式跟str(x)一样,但xz类型并不一样 '4' >>>...4") False 当x=4,当x为整数类型时,调用str()repr()返回结果是一样, 而当y为字符串类型时,repr(y)结果就是“正式”字符串表示,而str(y)结果则是“非正式”。...容器 __str__ 方法使用包含对象 __repr__ 参考资料: “Difference between __str__ and __repr__ in Python” Fluent Python

1.4K30

Python面向对象编程-魔术方法-__str____repr__方法

在Python面向对象编程中,魔术方法是一组特殊方法,用于在特定情况下调用对象操作。其中,__str____repr__方法是最常用魔术方法之一。...下面是一个简单例子,演示了如何使用__str____repr__方法:class MyClass: def __init__(self, name, age): self.name...# 使用__str__方法打印对象可读性更好表示形式print(obj) # 输出: Alice is 25 years old.# 使用__repr__方法打印对象字符串表示形式print(repr...接着,我们实现了__str____repr__方法。在__str__方法中,我们返回了一个字符串,描述了该对象可读性更好表示形式。...最后,我们创建了一个MyClass对象obj,并使用print语句repr函数分别打印了它可读性更好表示形式字符串表示形式。

20230

Python面试题之Python中__repr____str__区别

上面打印类对象并不是很友好,显示是对象内存地址 # 下面我们重构下该类__repr__以及__str__,看看它们俩有啥区别 # 重构__repr__ class TestRepr(Test):...# 你会发现,直接输出对象ts时并没有按我们__str__方法中定义格式进行输出,而用print输出信息却改变了 __repr____str__这两个方法都是用于显示,__str__是面向用户...打印操作会首先尝试__str__str内置函数(print运行内部等价形式),它通常应该返回一个友好显示。...__repr__用于所有其他环境中:用于交互模式下提示回应以及repr函数,如果没有使用__str__,会使用printstr。...当我们想所有环境下都统一显示的话,可以重构__repr__方法;当我们想在不同环境下支持不同显示,例如终端用户显示使用__str__,而程序员在开发期间则使用底层__repr__来显示,实际上__str

41220

(三十一) 初遇python之str() vs repr()

各位读者大大们大家好,今天学习str() 与 repr()对比,并记录学习过程欢迎大家一起交流分享。 ?...新建一个python文件命名为py3_str_vs_repr.py,在这个文件中进行操作代码编写: a = [1,2,3,4] b = 'Hello Moto' print(str(a)) print(...repr(a)) #list:发现使用str()repr() #打印结果一样 print(str(b)) print(repr(b)) #String:str()打印结果含有单引号 #repr()...打印结果没有双引号 #上边代码运行之后好像看不出来 #str()repr()之间有什么区别 #根据官方解释 #str()目标是可读性打印 #repr()目标是打印明确信息 #例如: import...print(repr(times)) #datetime.datetime(2019, 5, 29, 21, 34, 0, 10000) #所以说repr()更面向是开发者去调试程序使用 #str(

37520

python 魔术方法(三)对象打印 -- __repr__ 与 __str__

python 魔术方法(二) 对象创建与单例模式实现 但有另外两个常用魔术方法也一样困扰着很多 Python 程序员,那就是本文将介绍用于对象字符串化两个方法 — __repr__ __str...logging 打印日志目的一致,此时调用是 __str__ 方法 容器 __str__ 方法调用是每一个成员 __repr__ 方法 3....__repr__ TechlogTest.__repr__ [TechlogTest.__repr__] 所有需要调用 __str__ 地方都改为调用了我们实现 __repr__ 4....结论 我们看到,默认方式通常并不是我们想要,而如果我们只实现了 __repr__,那么所有需要使用 __str__ 场景都会去调用 __repr__ 因此,实践中建议是,为每个类都实现 __repr...,解释器循环调用他们 __repr__ 方法,这种问题是需要格外注意避免

37920
领券