【发布时间】:2021-08-14 10:16:02
【问题描述】:
我正在开发一个已经建立的 Python 2.7 项目,需要进行一些修改,而且我对 Python 还是比较陌生,这就是我所做的:
我在同一个类中有两个函数,一个是@staticmethod,另一个是@classmethod。我需要从@staticmethod 内部调用@classmethod -
class ABC(object):
@classmethod
def classm(self, name):
...
@staticmethod
def staticm(freq):
...
...
classm("sample")
上面这段代码不起作用,所以我将 staticmethod 转换为 classmethod 然后它工作正常(在正确的地方使用'self')
有人可以解释一下我们是否可以从 staticmethod 调用 classmethod(很可能似乎我不知道语法),如果不能,是否有更好的解决方法而无需转换?
【问题讨论】:
-
使用类名:
ClassName.class_method(...)或使用传入类方法的类对象。 -
如果你需要引用它所在的类,
@staticmethod装饰器不是正确的选择。那么你就有了类方法。
标签: python python-2.7 static-methods class-method