官方说明:
super(type[, object-or-type])
Return the superclass of type. If thesecond argument is omitted the super object
returned is unbound. If the second argument is an object,isinstance(obj, type)
must be true. If the second argument is a type, issubclass(type2, type)must be
true. super() only works for new-style classes.
子类里访问父类的同名属性,而又不想直接引用父类的名字。
>>> class A(object):
... def m(self):
... print(‘A‘)
...
>>> class B(A):
... def m(self):
... print(‘B‘)
... super().m() --python3.x以上可以这样写。至少3.5是可以的
...
>>> B().m()
B
A
>>> class B(A):
... def m(self):
... print(‘B‘)
... super(B, self).m()
...
>>> B().m()
B
A
理解如下:super(B, self)去寻找B的父类并把self转换为B的父类的对象,然后执行同名的方法。
本文出自 “90SirDB” 博客,请务必保留此出处http://90sirdb.blog.51cto.com/8713279/1826187
原文地址:http://90sirdb.blog.51cto.com/8713279/1826187