__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魔法函数
标签:__,函数,python,self,repr,ts,str,name
From: https://www.cnblogs.com/lanjianhua/p/18400393