python __repr__函数和__str__函数

__repr__函数和__str__函数 都是类似的用于 显示类对象的作用。

class MyClass:
    def __init__(self, name):
        self.name = name

    def __repr__(self):   # __str__(self)
        return self.name

result = MyClass("repr/str魔法函数")
print("MyClas result:", result)   # 输出:repr/str魔法函数

两者的区别是:

class MyClass:
    def __init__(self, name):
        self.name = name

    def __str__(self):
        return self.name

>>> ts = MyClass("str魔法函数")  # 定义了 __str__(self)
>>> ts   # 在终端中直接 将变量 ts 回车输出,输出内容是 一个 类 属性,而不是输出 __str__ 中的定义内容
<__main__.MyClass at 0x7fa91c314e50>

>>> print(ts)  # 用print 打印的话会返回 __repr__() 或 __str__() 中的返回值
str魔法函数
class MyClass:
    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return self.name

>>> ts = MyClass("repr魔法函数")  # 定义了 __repr__(self)
>>> ts   # 在终端中直接 将变量 ts 回车输出,将直接输出 __repr__中的定义内容
repr魔法函数

>>> print(ts)  # 用print 打印的话会返回 __repr__() 或 __str__() 中的返回值
repr魔法函数
posted @ 2024-09-06 15:55  二月雪  阅读(2)  评论(0编辑  收藏  举报