首页 > 其他分享 >str和repr魔术方法

str和repr魔术方法

时间:2024-03-17 12:44:07浏览次数:31  
标签:__ res self repr 魔术 str print

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

相关文章