Python3:检查方法是否静态
Simmilar问题(与Python2相关:Python:检查方法是否为静态)
让我们考虑以下类定义:
class A:
def f(self):
return 'this is f'
@staticmethod
def g():
return 'this is g'
在Python 3中instancemethod
,一切都不再是功能了,因此与Python 2相关的答案将不再起作用。
正如我所说的,一切都是函数,因此我们可以调用A.f(0)
,但是我们当然不能调用A.f()
(参数不匹配)。但是,如果我们做一个实例a=A()
,我们叫a.f()
Python的传递给函数A.f
的self
作为第一个参数。调用a.g()
阻止发送或捕获self
-,因此必须有一种方法来测试它是否为静态方法。
那么我们可以在Python3中检查方法是否被声明为static
吗?