面向对象:>继承.:

一.继承

  1.新式类:继承object类的类就是新式类.(python3x中都是新式类)

  2经典类:不继承object类就是经典类.

  3.python2x:默认所有类都不继承object.所以默认所有类都是经典类.

  可以手动加上(object),这样就是新式类.

单继承>多继承:

   单继承:

    1.查询顺序

class A(object):#默认继承
    name = "alex"
    def func(seif):
        print(666)
class B(A):
    age = 12
b1 =B()
b1.age
b1.name

对象空间>>子类>>父类>>object空间

    2.

    只执行子类

class A(object):#默认继承
    name = "alex"
    def func(seif):
        print(666)
class B(A):
    age = 12
   def dunc(self):
    print('IN B")
b1 =B() b1.func #在子类找到了要执行的就不往上找了

    3.既要执行父类的又要执行子类的方法

class A(object):#默认继承
    name = "alex"
    def func(seif):
print(666) class B(A): age = 12    def dunc(self):
    super().func() #第一种
super(B,self).func()
    A.func(self) #第二种

    print('IN B") b1 =B() b1.func

  3.多继承

  新式类:广度优先.用最少的次数走完每个节点

class A:
    def func(self):
        print("A")    
class B(A):
    def func(self):
        print("B") 
class C(B):
    def func(self):
        print("C") 
class D(B,C):
    def func(self):
        print("D") 

  经典类:一直找,找到低

猜你喜欢

转载自www.cnblogs.com/while-number/p/9252517.html