Python基础08_20210111

重写__str__()方法

object 有一个__str__()方法,用于返回一个对于“对象的描述”,对应于内置函数 str() 经常用于 print()方法,帮助我们查看对象的信息。
str()可以重写。

class Person: 
	def __init__(self,name,age): 
		self.name = name 
		self.__age = age 

	def __str__(self): 
	'''将对象转化成一个字符串,一般用于 print 方法''' 
	return "名字是:{0},年龄是{1}".format(self.name,self.__age) 

p = Person("高淇",18) 
print(p)

MRO()

Python 支持多继承,如果父类中有相同名字的方法,在子类没有指定父类名时,解释器将 “从左向右”按顺序搜索。
MRO(Method Resolution Order):方法解析顺序。 我们可以通过 mro()方法获得 “类的层次结构”,方法解析顺序也是按照这个“类的层次结构”寻找的。

#多重继承 
class A: 
	def aa(self): 
		print("aa") 
	def say(self): 
		print("say AAA!") 

class B: 
	def bb(self): 
		print("bb") 
	def say(self): 
		print("say BBB!") 
		
class C(B,A): 
	def cc(self): 
		print("cc") 

c = C() 
print(C.mro()) #打印类的层次结构 
c.say() #解释器寻找方法是“从左到右”的方式寻找,此时会执行 B 类中的 say()

super()

在子类中,如果想要获得父类的方法时,我们可以通过 super()来做。
super()代表父类的定义,不是父类对象。

#super() 
class A: 
	def say(self): 
		print("A: ",self) 
		print("say AAA") 

class B(A): 
	def say(self): 
		#A.say(self) 调用父类的 say 方法 
		super().say() #通过 super()调用父类的方法 
		print("say BBB") 
	
b = B() 
b.say()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值