super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。总之前人留下的经验就是:保持一致性。要不全部用类名调用父类,要不就全部用 super,不要一半一半。
好处就是可以避免直接使用父类的名字.但是它主要用于多重继承
注意在Python3.0里语法有所改变:你可以用super().__init__()
替换super(ChildB, self).__init__()
.(在我看来非常nice)
refer to:
http://www.runoob.com/python/python-func-super.html
https://laike9m.com/blog/li-jie-python-super,70/
http://www.jackyshen.com/2015/08/19/multi-inheritance-with-super-in-Python/
http://blog.csdn.net/lqhbupt/article/details/19631991
https://mozillazg.com/2016/12/python-super-is-not-as-simple-as-you-thought.html