zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    未来的计划和考虑
    jquery 常用的方法
    对于页面动态加载的元素事件无效的解决方案
    Myeclipse8.5中svn插件安装方法总结
    JS读RSS
    JAVA的RSS处理
    环境:win7+ie8 IE8的F12不起作用,原因如下:
    关闭和释放JDBC
    关于Eclipse无法生成class文件的问题
    JavaScript跨域总结与解决办法
  • 原文地址:https://www.cnblogs.com/uglyliu/p/6104250.html
Copyright © 2011-2022 走看看