1、python2 中的写法
class Animal(object):
def __init__(self):
print 'Animal init'
class Tom(Animal):
def __init__(self):
'''第一种写法:'''
super(Tom, self).__init__()
'''第二种写法'''
Animal(self),__init__()
print('Tom init')
以上代码两种写法,分析如下:
第二种写法 --> 就是 Animal 类通过 self 初始化了一个对象(实例、instance),然后让该对象调用 init 方法。
第一种写法 --> 其实就是写法不同,可以理解为super(Tom, self) 查找 Tom.super -> Animal
然后使用 Animal(self) 调用 init 方法
2、python3调用父类的写法
python3 中写法更为简单,第二种写法,在python2 和 python3 中都可以使用
然后 python3 中可以直接 super().method 调用方法:
'''python3的写法'''
super().__init__()