美文网首页
2020-05-08

2020-05-08

作者: 价值投机168 | 来源:发表于2020-05-08 20:11 被阅读0次

    1.类和对象共同的属性。
    如果一个类,有一个属性赋值了CA='hello'。那么这个类就有这个属性了。
    假设它的对象a没有这个CA属性,那么a.CA就会是hello
    如果对a.CA='no'进行赋值,那么a对象就有属性CA了。那么a.CA就会访问到自己的CA即会显示no,而不会显示hello了。
    但是,如果使用ClassName.CA访问的话,永远访问到的是类的CA即'hello'.
    注意:python的属性的搜索原则,从最低开始往上搜索,搜索到哪个属性就使用哪个属性。
    2.对象方法:


    image.png

    3.好好理解下继承和重写:


    image.png

    4.类和对象的搜索:


    image.png
    image.png

    类用bases来链接搜索。

    image.png

    对象的dict不包含继承的属性和方法.

    image.png

    5.通过类递归获取类链接:


    image.png
    def classtree(cls,indent):
    print('.'*indent + cls.__name__)
    for supercls in cls.__bases__:
        classtree(supercls,indent+3)
    
    def instancetree(inst):
    print('Tree of %s' % inst)
    classtree(inst.__class__,3)
    
    def selftest():
    class A: pass
    class B(A): X='B'
    class C(A): X='C'
    
    class D(B,C): pass
    class E: X='E'
    class F(D,E): pass
    
    instancetree(B())
    instancetree(F())
    print(F().X)
    
    if __name__ == '__main__':
    selftest()
    

    相关文章

      网友评论

          本文标题:2020-05-08

          本文链接:https://www.haomeiwen.com/subject/xzrqnhtx.html