__str__魔术方法

# ### __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)

  

转载于:https://www.cnblogs.com/huangjiangyong/p/10920655.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值