Python:静态方法和类方法的区别

可能重复:
Python中@staticmethod和@classmethod有什么区别?

  • 我正在学习python中的OOP,并开始了解这两种方法
  • 看起来,语法方面的差异在于类方法隐式地传递了它们所属的类作为它们的第一个参数
  • class Circle:
      all_circles = [] # class variable
    
      @staticmethod
      def total_area():
          for c in Circle.all_circles: # hardcode class name
              # do somethig
    
      @classmethod
      def total_area(cls):
          for c in cls.all_circles: # no hardcode class name
              # do something
    

    我认为类方法更灵活,因为我们不对类进行硬编码

    题:
    - 这是一个更好的问题吗? @staticmethod或@classmethod?
    - 哪些情景适合使用这些方法中的每一种?


    classmethod获得了被调用的类“cls”。 有关更多详细信息,请参阅:Python中的@staticmethod和@classmethod有什么区别?

    链接地址: http://www.djcxy.com/p/9171.html

    上一篇: Python : Difference between static methods vs class method

    下一篇: Python Static methods, why?