zoukankan      html  css  js  c++  java
  • python classmethod方法 和 staticmethod

    classmethod()

      是一个类方法,用来装饰对应的函数。被classmethod 装饰之后就无需实例化,也不需要在函数中传self,但是被装饰的函数第一个参数需要是cls来表示自身类。可以用来调用类的属性,类的方法,实例化对象。

    示例:

      

    class A(object):
    
        # 属性默认为类属性(可以给直接被类本身调用)
        num = "类属性"
    
        # 实例化方法(必须实例化类之后才能被调用)
        def func1(self): # self : 表示实例化类后的地址id
            print("func1")
            print(self)
    
        # 类方法(不需要实例化类就可以被类本身调用)
        @classmethod
        def func2(cls):  # cls : 表示没用被实例化的类本身
            print("func2")
            print(cls)
            print(cls.num)
            cls().func1()
    
        # 不传递传递默认self参数的方法(该方法也是可以直接被类调用的,但是这样做不标准)
        def func3():
            print("func3")
            print(A.num) # 属性是可以直接用类本身调用的
        
    # A.func1() 这样调用是会报错:因为func1()调用时需要默认传递实例化类后的地址id参数,如果不实例化类是无法调用的
    A.func2()
    A.func3()

    staticmethod()

  • 相关阅读:
    方法
    成员变量和局部变量
    带参数的方法
    包名规范
    String
    导包
    java基础(十二章)
    java基础(十一章)
    java基础(九章)
    java基础(八章)
  • 原文地址:https://www.cnblogs.com/wf123/p/10896071.html
Copyright © 2011-2022 走看看