python 普通方法,@classmethod,@staticmethod

Posted 致林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 普通方法,@classmethod,@staticmethod相关的知识,希望对你有一定的参考价值。

  • 普通方法
    实例化一个类,然后通过类的实例化去调用方法:

    class method1:
    def __init__(self):
        self.items = [1,2,3,]
    def getvalue(self):
        return self.items
  • @classmedhod
    依赖类而不依赖示例,定义方法的时候第一个参数指代当前类

    class method2:
    item = 1
    def __init__(self):
        self.items = [1,2,3,]
    @classmethod
    def getvalue(cls, args):
        print(cls.__name__)   # print: method2
        print(cls.item)             # print: 1
        return cls
  • @staticmedhot
    静态方法,和java, C#一致,只是定义在类中,和类并没有关系

    class method3:
    item  = 1
    @staticmethod
    def getvalue():
        print(item)      # error



以上是关于python 普通方法,@classmethod,@staticmethod的主要内容,如果未能解决你的问题,请参考以下文章

粗解python的@classmethod和@staticmethod及普通实例方法

Python中@staticmethod 和@classmethod 的区别

python类方法@classmethod与@staticmethod

Python中的@classmethod

python--staticmethod(静态方法)和classmethod(类方法)

为啥我使用@classmethod 而不是普通的实例方法[重复]