Python面向对象编程-魔术方法-__str__和__repr__方法
2023-06-13 09:18:43 时间
在Python面向对象编程中,魔术方法是一组特殊的方法,用于在特定情况下调用对象的操作。其中,__str__和__repr__方法是最常用的魔术方法之一。这两个方法都是用于打印对象时的字符串表示形式,但它们的作用略有不同。
__str__方法用于在print语句中打印对象时的字符串表示形式。该方法返回一个字符串,该字符串是对象的可读性更好的表示形式,通常用于向终端输出信息。
__repr__方法返回一个字符串,该字符串是用于在Python解释器中重新创建该对象的字符串表示形式。通常情况下,该字符串应该是一个Python表达式,可以直接传递给Python解释器。
下面是一个简单的例子,演示了如何使用__str__和__repr__方法:
class MyClass:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name} is {self.age} years old."
def __repr__(self):
return f"MyClass('{self.name}', {self.age})"
obj = MyClass("Alice", 25)
# 使用__str__方法打印对象的可读性更好的表示形式
print(obj) # 输出: Alice is 25 years old.
# 使用__repr__方法打印对象的字符串表示形式
print(repr(obj)) # 输出: MyClass('Alice', 25)
在上面的例子中,我们定义了一个MyClass类,并在其构造函数中初始化了两个属性:name和age。接着,我们实现了__str__和__repr__方法。在__str__方法中,我们返回了一个字符串,描述了该对象的可读性更好的表示形式。而在__repr__方法中,我们返回了一个字符串,用于在Python解释器中重新创建该对象。最后,我们创建了一个MyClass对象obj,并使用print语句和repr函数分别打印了它的可读性更好的表示形式和字符串表示形式。
需要注意的是,__repr__方法返回的字符串必须是一个有效的Python表达式,可以直接传递给Python解释器。如果返回的字符串不是一个有效的Python表达式,那么在使用eval函数或者直接复制该字符串时会引发语法错误。
相关文章
- pycharm2019.2.6版本改中文_pycharm怎么更改python环境
- python中矩阵的转置怎么写_Python 矩阵转置的几种方法小结
- 【Python矩阵转置】| 试使用多方法实现[通俗易懂]
- python中pygame怎么安_Python中pygame安装方法图文详解
- python 删除文件、清空目录的方法总结
- 简述Python特点_python优缺点
- pycharm如何调试python程序_Pycharm断点调试Python程序的步骤方法
- 云签——基于python flask的微信公众平台的动态签到
- 【7】python_matplotlib 输出(保存)矢量图方法;画图时图例说明(legend)放到图像外侧;Python_matplotlib图例放在外侧保存时显示不完整问题解决
- python交互模式下方向键乱码的正确解决方法
- python中动态导入文件的方法
- Python面向对象编程-魔术方法-__iter__和__next__方法(一)
- Python线程-线程的同步(二)
- Python __dir__()用法:列出对象的所有属性(方法)名
- python之字符串【str】详解编程语言
- python、java爬虫使用代理的区别
- 用Python仿写MSSQL 编程体验更有趣(python仿mssql)
- Python__getattr__与__setattr__使用方法
- python条件和循环的使用方法
- python中stdout输出不缓存的设置方法