学习之高阶编程str方法
__str__方法
问题思考:交互环境下print打印的内容和和直接输入变量,返回的内容不一样这是为什么?.
使用print打印的时候触发的是_str_方法,
注意点:
重写`str,必须要记得写return.
return返回的必须是一个字符串对象。
class MyClass:
def __init__(self, *args, **kwargs):
pass
def __str__(self): # 没有定义str方法的时候返回-<__main__.MyClass object at 0x000001D4B8137FD0>
"""
使用print打印的时候触发的__str__方法
:return:
"""
return f"[MyClass]" # 定义str方法--返回return的内容
def __repr__(self):
"""
会更加的通用
:return:
"""
return f"[__repr__]"
if __name__ == '__main__':
obj = MyClass()
print(obj) #当print打印一个对象时,会查询是否实现了__str__,如果实现了会自动调用;如果未实现会査询__repr__方法,如果有定义会自动调用
# 如果str方法与repr方法都没有实现,他会调用父类的str方法,打印内存地址