Python引用类中的静态方法 - 最佳实践

时间:2015-01-22 01:21:15

标签: python static-methods

这只是一个"有更好的方法来做x吗?"关于使用python的类中的@staticmethod函数的问题。

我有以下内容:

class my_class():
    @staticmethod
    def function_a():
        print("hello")

    @staticmethod
    def function_b():
        my_class.function_a()

显然,对于静态课程,你没有" self"引用,但有没有另一种方法来引用类中的函数而不使用类名" my_class.xxxxx"?

大多数其他语言都有不同的版本,例如php有$this->用于继承,self::用于静态。

1 个答案:

答案 0 :(得分:1)

my_class.function_b应为classmethod

@classmethod
def function_b(cls):
    cls.function_a()

classmethods传递对它们被调用的类(或它们被调用的实例的类)的引用作为第一个参数而不是通常的self