介绍
介绍
福哥发现在Python3里面调用父类的构造函数和Python2不一样了,直接使用super().__init__()行不通了!
后来福哥经过一番研究发现了可行的方案,分享给大家!
方法一
可以直接使用父类的名称调用父类的构造函数__init__(),这样比较直观,语法也很简单。
注意:使用父类的名称调用__init__()需要传递self参数进来。
示例
class Programmer: def __init__(self): print("Programmer: 福哥你在吗?") def getAge(self): return 20 class Fuge(Programmer): def __init__(self): Programmer.__init__(self) print("Fuge: 我在这里!(" + str(self.getAge()) + ")") def getAge(self): return 35
方法二
还可以使用super函数调用父类的构造函数__init__(),语法差不多,就是不需要传递父类的参数了。
使用这个方法还可以溯源当前类的祖籍类链表,方法就是一层一层的调用super方法就好了。
注意:使用super调用__init__()是不需要传递self参数的。
示例
class Programmer: def __init__(self): print("Programmer: 福哥你在吗?") def getAge(self): return 20 class Fuge(Programmer): def __init__(self): super(Fuge, self).__init__() print("Fuge: 我在这里!(" + str(self.getAge()) + ")") def getAge(self): return 35 def test(): my = Fuge()
总结
今天福哥把Python调用父类的构造函数的方法教给了童鞋们,大家在设计复杂的模块功能的时候可以充分利用这个去分散功能。