Str魔术方法
# ### __str__ 魔术方法
'''
触发时机: 使用print(对象)或者str(对象)的时候触发
功能: 查看对象
参数: 一个self接受当前对象
返回值: 必须返回字符串类型
'''
class Cat():
gift = "抓老鼠"
def __init__(self,name):
self.name = name
def cat_gift(self):
return "小猫叫{},小猫会{}".format(self.name,self.gift)
def __str__(self):
return self.cat_gift()
__repr__ = __str__ # 重写实现repr可以使用
tom = Cat("汤姆")
# 触发时机1 : print(对象)
print(tom)
# 触发时机2 : str(对象)
res = str(tom)
print(res)
res = repr(tom)
print(res , type(res))
repr魔术方法
'''
触发时机: 使用repr(对象)的时候触发
功能: 查看对象,与魔术方法__str__相似
参数: 一个self接受当前对象
返回值: 必须返回字符串类型
'''
"""
x = 10
re = repr(x)
print(re,type(re))
repr() return str 便于解释器就行分析 结果可以被eval执行
"""
class Mouse():
gift = "偷油吃"
def __init__(self,name):
self.name = name
def mouse_gift(self):
return "老鼠叫{},老鼠会{}".format(self.name,self.gift)
def __repr__(self):
return self.mouse_gift()
# 系统底层默认把__repr__方法赋值给__str__方法,所以通过print或者str强转可以触发;
# __str__ = __repr__
jerry = Mouse("杰瑞")
# 触发时机1 : print(对象)
print(jerry)
# 触发时机2 : repr(对象)
res = repr(jerry)
print(res)
# 触发时机3 : str(对象)
res = str(jerry)
print(res)
标签:__,res,self,repr,魔术,str,print
From: https://www.cnblogs.com/wbcde116/p/18078431