• python类相关


    class A:
        def bar(self):
            print("BAR")
            self.f1()
    class B(A):
        def f1(self):
            print("B")
    class C:
        def f1(self):
            print("C")
    class D(C,B):
        pass
    obj = D()
    obj.bar()
    # 创建了类A、B、C、D;
    # D继承了C和B,B继承了A,D内什么都不做,pass;
    # 创建一个对象obj,类是D,当执行D的bar方法的时候会先从C里面寻找有没有bar方法;
    # C内没有bar方法,然后继续从B里面查找,B里面也没有,B的父类是A,A里面有bar方法,所以就执行了A的bar方法;
    # A的bar方法首先输出了BAR;
    # 然后又执行了self.f1(),self=obj,相当于执行了obj.f1();
    # 执行obj.f1()的时候先从C里面查找有没有f1这个方法,C里面又f1这个方法;
    # 最后就执行C里面的f1方法了,输出了C
    class Foo:
        #静态方法括号中没有self,其方法前一行要加上@staticmethod
        @staticmethod
        def static():
            print("static")
    #静态方法通过类名+方法名即可执行
    Foo.static()
    #静态方法也可以通过对象去访问,对于静态方法用类去访问
    obj = Foo()
    obj.static()
    

      

    class Province:
    
        #静态字段
        contry = "China"
        def __init__(self,name):
            self.name = name
        def show(self):
            print(Province.contry,self.name)
    hebei = Province("河北")
    hebei.show()
    hubei = Province("湖北")
    hubei.show()
    # 类里面的成员类去访问,对象内的成员用对象去访问。
    class Foo:
        def __init__(self):
            self.__Name = "huihuang"
    # 通过特殊的方法访问
    obj = Foo()
    #一个下划线,一个类名,私有的变量名
    print(obj._Foo__Name)

    转载于:https://blog.ansheng.me/2016/06/python-full-stack-way-object-oriented-advanced.html

  • 相关阅读:
    前端最全资源汇集
    面试题
    前端知识
    我的工作心得
    一个类似于jq的小型库
    js 模拟css3 动画3
    js 模拟css3 动画2
    js 模拟css3 动画1
    js 模拟css3 动画
    学习node.js 第4篇 建立一个最小的web聊天系统
  • 原文地址:https://www.cnblogs.com/uglyliu/p/6104250.html
Copyright © 2020-2023  润新知