Python: 你不知道的 super

http://python.jobbole.com/86787/

 

这里面还没写全.比如

class Base(object):
    def __init__(self):
        print ("enter Base")
        print( "leave Base")
 
class A(Base):
    def __init__(self):
        print( "enter A")
        super(A, self).__init__()
        print("leave A")
 
class B(Base):
    def __init__(self):
        print ("enter B")
        super(B, self).__init__()
        print( "leave B")
 
class C(A):
    def __init__(self):
        print ("enter C")
        super(A, self).__init__()
        print( "leave C")
c = C()

 

 

 

 

 

泡完之后会发现结果:

enter C
enter Base
leave Base
leave C

说的意思就是supre这个函数的第一个变量可以不是他所在的类.

这里c的init函数里面的super直接super A了 所以他直接调用的是A的父,所以是Base.所以打印就只有C和base

posted on 2018-02-16 22:18  张博的博客  阅读(160)  评论(0编辑  收藏  举报

导航