最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Python中的super()方法详解

来源:动视网 责编:小采 时间:2020-11-03 23:15:01
文档

Python中的super()方法详解

Python中的super()方法详解:一、单独调用父类的方法需求:编写一个类,然后再写一个子类进行继承,使用子类去调用父类的方法1。使用方法1打印: 胖子老板,来包槟榔。那么先写一个胖子老板的父类,执行一下:class FatFather(object): def __init__(self, name): pri
推荐度:
导读Python中的super()方法详解:一、单独调用父类的方法需求:编写一个类,然后再写一个子类进行继承,使用子类去调用父类的方法1。使用方法1打印: 胖子老板,来包槟榔。那么先写一个胖子老板的父类,执行一下:class FatFather(object): def __init__(self, name): pri


一、单独调用父类的方法

需求:编写一个类,然后再写一个子类进行继承,使用子类去调用父类的方法1。

使用方法1打印: 胖子老板,来包槟榔。

那么先写一个胖子老板的父类,执行一下:

class FatFather(object):
 def __init__(self, name):
 print('FatFather的init开始被调用')
 self.name = name
 print('FatFather的name是%s' % self.name)
 print('FatFather的init调用结束')
def main():
 ff = FatFather("胖子老板的父亲")

运行一下这个胖子老板父类的构造方法init 如下:

if __name__ == "__main__":
 main()
FatFather的init开始被调用
FatFather的name是胖子老板的父亲
FatFather的init调用结束

好了,那么下面来写一个子类,也就是胖子老板类,继承上面的类。

# 胖子老板的父类
class FatFather(object):
 def __init__(self, name):
 print('FatFather的init开始被调用')
 self.name = name
 print('调用FatFather类的name是%s' % self.name)
 print('FatFather的init调用结束')
# 胖子老板类 继承 FatFather 类
class FatBoss(FatFather):
 def __init__(self, name, hobby):
 print('胖子老板的类被调用啦!')
 self.hobby = hobby
 FatFather.__init__(self, name) # 直接调用父类的构造方法
 print("%s 的爱好是 %s" % (name, self.hobby))
def main():
 #ff = FatFather("胖子老板的父亲")
 fatboss = FatBoss("胖子老板", "打斗地主")

在这上面的代码中,我使用FatFather.init(self,name)直接调用父类的方法。

运行结果如下:

if __name__ == "__main__":
 main()
胖子老板的类被调用啦!
FatFather的init开始被调用
调用FatFather类的name是胖子老板
FatFather的init调用结束
胖子老板 的爱好是 打斗地主

二、super() 方法基本概念

除了直接使用 FatFather.init(self,name) 的方法,还可以使用super()方法来调用。

那么首先需要看super()方法的描述和语法理解一下super() 方法的使用。

2.1 描述

super() 函数是用于调用父类(超类)的一个方法。

super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。

文档

Python中的super()方法详解

Python中的super()方法详解:一、单独调用父类的方法需求:编写一个类,然后再写一个子类进行继承,使用子类去调用父类的方法1。使用方法1打印: 胖子老板,来包槟榔。那么先写一个胖子老板的父类,执行一下:class FatFather(object): def __init__(self, name): pri
推荐度:
标签: 方法 方式 详解
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top