python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python __repr__ __str__

python中__repr__与__str__方法详解

作者:小小小小祥

本文主要介绍了python中__repr__与__str__方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

__str__ __repr__ 是 Python 中两个非常重要的魔法方法,它们都用于定义对象的字符串表示,但各自的使用场景和目标有所不同。

1.__str__:面向用户的字符串表示

代码示例:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __str__(self):
        return f"Point at ({self.x}, {self.y})"

p = Point(3, 4)
print(p)

代码输出:

Point at (3, 4)

2.__repr__:面向开发者的字符串表示

代码示例:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __repr__(self):
        return f"Point(x={self.x}, y={self.y})"

p = Point(3, 4)
print(repr(p))

代码输出:

Point(x=3, y=4)

3.__str__vs__repr__:区别

特性__str____repr__
目标面向终端用户,简洁、友好、易读面向开发者,详细、无歧义、可重建对象
输出格式通常为简单的字符串描述,易于理解返回尽可能完整的对象信息,通常包括类名和参数
用途主要用于 print()、str() 输出主要用于调试、交互式环境、日志记录
默认行为如果没有定义 __str__,Python 会调用 __repr__如果没有定义 __repr__,Python 会调用默认的 __repr__,该默认方法返回一个类似 <__main__.ClassName object at 0x000000> 的表示

4. 综合示例

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __str__(self):
        return f"Point at ({self.x}, {self.y})"

    def __repr__(self):
        return f"Point(x={self.x}, y={self.y})"

# 创建一个 Point 对象
p = Point(3, 4)

# 面向用户的字符串表示
print(str(p))  # Output: Point at (3, 4)

# 面向开发者的字符串表示
print(repr(p))  # Output: Point(x=3, y=4)

总结

到此这篇关于python中__repr__与__str__方法详解的文章就介绍到这了,更多相关python __repr__ __str__内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文