1. 程式人生 > >新式類, 舊式類

新式類, 舊式類

class A:
    @classmethod
    def s(cls):
        print("1")

class B:
    b = A
    def s(self):
        self.b.s()

B().s()

 

def fn():

    print("hello")



dn = fn

dn()  

舊式類  class A:

                        pass

新式類  class A(object):

                        pass

  現在所說的,提倡的一般就是新式類

繼承多個:

                 class A(B,C,D):

            方法重疊則從左到右找

       菱形繼承:類似於廣度優先遍歷

                 A.__mro__   判斷先後繼承是哪個

                               mro演算法判斷出來的

                        一般不採用菱形繼承

      以上說的是新式類中的繼承優先順序

          舊式類中繼承優先順序使用深度優先遍歷

   2   super是子類中使用父類方法,同時也是新式類中才有的    

   3    global  和  nonlocal

nonlocal 是python3中的新增內容