介绍
介绍
福哥发现在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调用父类的构造函数的方法教给了童鞋们,大家在设计复杂的模块功能的时候可以充分利用这个去分散功能。