20180309-面向对象进阶

面向对象的基本知识就不多做介绍了,主要记录一下面向对象的注意事项

1.基类的构造方法

class A:
    def __init__(self):
        print('构造方法A')
        self.ty = '动物'

class C(A):
    def __init__(self):
        print('构造方法B')

        # 调用父类 推荐使用此方法
        super(C,self).__init__()

        # 另外一种调用父类的方法如下  此方法不推荐使用,因为在多继承时不好区分self指向的对象
        # A.__init__(self)


c = C()
# 输出
# 构造方法B
# 构造方法A

2.面向对象中self的含义,以及继承中易错的点

class A:
    def xx(self):
        print('A')

class B:
    def xxx(self):
        print('B')
        self.f1()

    def f1(self):
        print('B -> f1')

class C(A,B):
    def f1(self):
        print('C')


c = C()
c.xxx()
# 输出
# B
# C

注意:此时调用c.xxx()函数时,函数的查找顺序如下:C -> A -> B,而B中xxx()函数,内部调用self.f1()函数,此时的self为C的实例对象,所以调用C类中f1()函数

 

posted @ 2018-03-09 17:31  土耳其大骗子  阅读(84)  评论(0)    收藏  举报