# ### __str__
'''
触发时机: 使用print(对象)或者str(对象)的时候触发
功能: 查看对象
参数: 一个self接受当前对象
返回值: 必须返回字符串类型
'''
class Cat():
gift = "抓老鼠"
def __init__(self,name):
self.name = name
def cat_info(self):
strvar = "这个对象的名字{},这个对象的天赋:{}".format(self.name,self.gift)
return strvar
def __str__(self):
return self.cat_info()
tom = Cat("汤姆")
# (1) 打印对象触发__str__方法
# print(tom)
# (2) str强转对象时候触发__str__方法
res = str(tom)
print(res)
# ### __repr__
'''
触发时机: 使用repr(对象)的时候触发
功能: 查看对象,与魔术方法__str__相似
参数: 一个self接受当前对象
返回值: 必须返回字符串类型
'''
class Mouse():
gift = "打洞"
def __init__(self,name):
self.name = name
def mouse_info(self):
strvar = "该对象的名字{},它的天赋是{},龙胜龙,凤生凤,老鼠的儿子会打洞".format(self.name,self.gift)
return strvar
def __repr__(self):
return self.mouse_info()
# 在系统的底层加了如下一句话:如果存在__repr__ 这个方法,就把它赋值给__str__
# __str__ = __repr__
jerry = Mouse("杰瑞")
# res = repr(jerry)
# print(res)
print(jerry)