• 面向对象中的成员


    一、类的成员

    class Foo:
    
        #方法
        def __init__(self,name):
            #实例变量/字段
            self.name = name
    
        #方法
        def func(self):
            pass
    #obj,Foo类的对象
    #obj,Foo类的实例
    obj = Foo("Bob")
    View Code

      成员共分为三类:

        变量:

          实例变量(字段)

              公有实例变量(字段)

              私有实例变量(字段)

          类变量(静态字段)  #当所有对象中有共同的字段时且要改都改要删都删时,可以将实例变量(字段)提取到类变量(静态字段)

              公有类变量(静态字段)

              私有类变量(静态字段)

              实例一:

                 class Foo:

                      #类变量(静态字段)

                      country = "中国"

                      def __init__(self,name):

                        #实例变量(字段)

                        self,name = name

                      def func(self):

                        pass

                 obj1 = Foo("阿萨德")

                 obj2 = Foo("阿斯顿")

                 Foo.country

            如何验证子类知不知道私有字段的存在

    #无法访问
    class
    Base(object): __secret = "私有" class Foo(Base): def func(self): print(self.__secret) print(Foo.__secret) obj = Foo() obj.func()
    #可以访问
    class Base(object):
        __secret = "私有"
        def fw(self):    #在Base内部访问了
            print(Base.__secret)
    class Foo(Base):
        def func(self):
            print(self.__secret)
            print(Foo.__secret)
    obj = Foo()
    obj.fw()

        方法:

          1.实例方法:         

    class Foo(object):
        def __init__(self,name):
            self.name = name
        #实例方法
        def func(self):
            print(self.name)
    obj = Foo("asd")
    obj.func()
    View Code

          2.静态方法:

    class Foo(object):
        def __init__(self,name):
            self.name = name
        #静态方法,如果方法无需使用对象中封装的值,那么就可以使用静态方法
        @staticmethod
        def display(a1,a2):
            return a1+a2
    Foo.display(1,4)
    View Code

          3.类方法

    class Foo(object):
        #类方法,cls是类
        @classmethod
        def show(cls,x1,x2):
            print(cls,x1,x2)
    #执行类方法
    Foo.show("a","b")
    #<class '__main__.Foo'> a b
    View Code

        属性:(通过方法改造出来)

    class Foo(object):
        def __init__(self):
            pass
        @property
        def start(self):
            return 1
        @property
        def end(self):
            return 10
    obj = Foo()
    print(obj.start)
    print(obj.end)

          总结:

            编写时:方法上方写@property

                方法参数只有一个self

            调用时:无需加括号 对象方法

            应用场景:对于简单的方法,当无需传参且有返回值时

  • 相关阅读:
    SharePoint服务器场环境安装升级补丁的详细步骤
    备注:常用Js脚本
    XMLHttpRequest对象使用示例
    TroubleShoot: SharePoint管理中心503错误,由于配置问题,无法加载模块 DLLowssvr.dll
    递归获取SharePoint文档库文件夹内的所有文件
    Datatable分页通用方法
    递归绑定树形菜单
    sharepoint发布站点匿名登陆访问不了文档库和表单库的解决办法
    Microsoft Office SharePoint Server 2007的文件目录结构
    Sharepoint母版页的应用
  • 原文地址:https://www.cnblogs.com/qq849784670/p/9549121.html
Copyright © 2020-2023  润新知