zoukankan      html  css  js  c++  java
  • Python之内置装饰器

    一、Python类方法

    Python 类方法和实例方法相似,类方法必须要有第一个参数,通常传cls(也可以传self),cls指向类本身。

    和实例方法最大的不同在于,类方法需要使用@classmethod修饰符进行修饰。

    (1)类不能直接调用类中的函数,必须加@classmethod才能直接调用。

            若不加@classmethod,就是普通函数,通过实例化的方法调用

    (2)类方法中不能直接调用实例方法和实例变量(即普通方法和普通变量)

    (3)类方法中可以调用其他类方法和类变量

    class MethodClass:
        CLASS_Prama=12
        def __init__(self):
            self.name="Balllyh"
            self.age=25
    
        @classmethod
        def class_method(cls):
            print("这是一个类方法",cls.CLASS_Prama)#类函数,可以直接调用
    
    #类方法推荐直接使用类名调用
    MethodClass.class_method()
    print(MethodClass.CLASS_Prama)
    
    #也可以使用实例对象去调用,但不推荐
    mer=MethodClass()
    mer.class_method()

     

     二、静态方法

    静态方法使用@staticmethod装饰器,没有类似 self、cls 这样的特殊参数。

    静态方法无法直接使用任何类变量,类方法,或者实例方法,实例变量

    调用:直接使用类名调用,也可以使用实例方法调用

    class MethodDemo:
        param_1=0
        @staticmethod
        def static_demo():
            print("这是一个静态方法")
    
    #调用,直接使用类名调用
    MethodDemo.static_demo()
    
    #也可以使用实例化方法调用
    de=MethodDemo
    de.static_demo()

    三、使用场景

    @classmethod,不修改原有函数的功能,在原函数基础上,增加新功能,将新功能写成类函数,进行调用使用

  • 相关阅读:
    十四、oracle 数据库管理--管理表空间和数据文件
    十一、oracle 数据库管理员
    十二、oracle 数据库(表)的逻辑备份与恢复
    九、oracle 事务
    十、oracle 常用函数
    八、oracle 分页
    七、oracle 表查询二
    五、oracle 表的管理
    六、表查询一
    四、oracle 用户管理(Profile)
  • 原文地址:https://www.cnblogs.com/balllyh/p/15737789.html
Copyright © 2011-2022 走看看