读书人

Python中调用父类的同名步骤

发布时间: 2012-10-20 14:12:48 作者: rapoo

Python中调用父类的同名方法

Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递。

举一个很常见的例子:

class A:    def __init__(self):        print("Enter A")        print("Leave A")class B(A):    def __init__(self):        print("Enter B")        super(B, self).__init__()        print("Leave B")class C(A):    def __init__(self):        print("Enter C")        super(C, self).__init__()        print("Leave C")class D(A):    def __init__(self):        print("Enter D")        super(D, self).__init__()        print("Leave D")class E(B, C, D):    def __init__(self):        print("Enter E")        super(E, self).__init__()        print("Leave E")E()

?

结果:

Enter E
Enter B
Enter C
Enter D
Enter A
Leave A
Leave D
Leave C
Leave B
Leave E

在super机制里可以保证公共父类仅被执行一次,至于执行的顺序,是按照mro进行的(E.__mro__)。

?

转自:http://hi.baidu.com/thinkinginlamp/blog/item/8905564e1f771c0eb3de05ec.html

读书人网 >perl python

热点推荐