这只是一个"有更好的方法来做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::
用于静态。
答案 0 :(得分:1)
my_class.function_b
应为classmethod
:
@classmethod
def function_b(cls):
cls.function_a()
classmethods传递对它们被调用的类(或它们被调用的实例的类)的引用作为第一个参数而不是通常的self
。