• 面向对象的属性,类方法.静态变量


    属性:                将一个方法  伪装成一个 属性,在代码的级别上没有本质的提升,但是让其看起来跟合理.

           用途:                类似一些需要经过计算的方法,为了看起来更合乎逻辑,将类中的一些方法伪装成对象的属性  如:   bmi(健康指数)    area(面积)   Perimeter(周长)  等 

           方法:                 在需要伪装的函数名的上一行加上装饰器函数,   如果需要修改,删除这个属性,,则需要分别定义,并用装饰器进行装饰

                

    类的方法:    通过类名调用的方法,类方法中第一个参数约定俗称cls,python自动将类名(类空间)传给cls.

    class A:
          def func(self): # 普通方法                                   =====>   a1 = A() #实例化一个对象
                print(self)                                                                      a1.func()   # 用对象正常调用           A.func(a1)  #通过类正常调用

          @classmethod # 类方法                                   ======>    a1 = A()   #实例化一个对象
          def func1(cls):                                                                      a1.func1()  #  用对象调用类方法.cls得到得是类本身                A.func1()  通过类调用类方法,自动将类空间传给cls

                print(cls)                                                    =====>通过子类或者子类实例化的对象.调用类方法,会自动将类名,或者对象的空间传给cls

    类方法的三种应用场景:(1)类中 有些方法是不需要对象参与.
    (2)对类中的静态变量进行改变,要用类方法
    (3)继承中父类得到子类的类空间

    class A:
        age = 12
        @classmethod             #注意      无论是类或者实例化的对象调用类方法,都会将调用者的所属本类空间传值给cls,这样在父类中就可以修改cls中的内容,注意,实例化的属性内容无法修改
                def func1(cls): # 此方法无需对象参与
                       print(cls)
                                            #对B类的所有的内容可以进行修改.
                       print(cls.age)
                       # return cls.name + str(cls.count + 1)

    class B(A):
         age = 22
    B.func1()

    05 静态方法
    @staticmethod        =======>一般放在函数名上变边,归纳统一函数,使得函数更清晰
    # 1,代码块.清晰.
    # 2,复用性.





































































                            

  • 相关阅读:
    Python3.6全栈开发实例[022]
    Python3.6全栈开发实例[021]
    Python3.6全栈开发实例[020]
    Python3.6全栈开发实例[019]
    Python3.6全栈开发实例[018]
    单选按钮QRadioButton
    QToolButton按钮
    文本编辑框QTextEdit
    信号-事件汇总
    QMessageBox消息框
  • 原文地址:https://www.cnblogs.com/laogao123/p/9378353.html
Copyright © 2020-2023  润新知