Python中子类要调用父类的方法(method),在python2.2之前通常的写法如下:

1
2
3
4
5
6
7
8
9
10
class A():
def __inti__(self):
print "enter A"
print "leave A"

class B():
def __init__(self):
print "enter B"
A.__init__(self)
print "leave B"

即使用非绑定的类方法(用类名来引用),并在参数列表中引入待绑定的对象(self),从而达到调用父类的目的。这样做的缺点是,当一个子类的父类发生变化时(如类B的父类由A变为C时),必须遍历整个类定义,把所有的通过非绑定的方法的类名全部替换过来。

自python2.2开始,python添加了一个关键字super来解决这个问题。官方说明如下: Continue reading

Python 的类分为经典类与新式类。Python2.7之前的版本中可以采用经典类,经典类继承父类的顺序采用深度优先算法,但在Python3之后的版本就只承认新式类了。新式类在python2.2之后的版本中都可以使用,新式类的继承顺序采用C3算法,其继承顺序可以通过查看MRO列表获取。 Continue reading

  • page 1 of 1

Arthur

Happy coding, Happy life.


Whatever


China