Python中的`__str__()`(双下划线字符串函数)是什么?

Python中的`__str__()`(双下划线字符串函数)是什么?

💡 原文英文,约300词,阅读约需2分钟。
📝

内容提要

__str__()是Python中的特殊方法,用于定义对象的字符串表示,便于打印和调试,尤其在Django模型中常用。与__repr__()不同,__str__()更注重用户友好的输出。

🎯

关键要点

  • __str__()是Python中的特殊方法,用于定义对象的字符串表示。

  • __str__()使对象在打印时更易于人类阅读。

  • __str__()在调试时比内存地址更有用。

  • __str__()可以自定义对象在日志或Django管理界面中的显示方式。

  • 示例:在Person类中使用__str__(),输出为'Alice is 30 years old'。

  • Django模型使用__str__()定义对象在Django管理界面和查询集中的显示方式。

  • 示例:在Book类中使用__str__(),输出为'Django Mastery by John Doe'。

  • __str__()与__repr__()的区别在于:__str__()用于用户友好的字符串表示,__repr__()用于开发者友好的调试表示。

  • 示例:在Car类中,__str__()输出为'Tesla Model 3 (2024)',而__repr__()输出为'Car(model='Tesla Model 3', year=2024)'。

  • __str__()常用于Django模型,使查询结果更易于阅读。

延伸问答

__str__()在Python中有什么作用?

__str__()用于定义对象的字符串表示,使对象在打印时更易于人类阅读。

__str__()与__repr__()有什么区别?

__str__()用于用户友好的字符串表示,而__repr__()用于开发者友好的调试表示。

如何在类中实现__str__()方法?

在类中定义__str__()方法,返回一个格式化的字符串,例如:return f'{self.name} is {self.age} years old'。

__str__()在Django模型中有什么应用?

__str__()用于定义Django模型对象在管理界面和查询集中的显示方式。

使用__str__()的好处是什么?

使用__str__()可以使对象在打印时更具可读性,并在调试时提供更有用的信息。

能否给出__str__()的示例吗?

例如,在Person类中,__str__()可以返回'Alice is 30 years old'。

➡️

继续阅读