类似问题(与 Python2 相关:Python: check if method is static)
让我们考虑以下类定义:
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()
并调用Python,则将作为第一个参数a.f()
传递给函数。调用阻止发送它或捕获- 所以必须有一种方法来测试这是否是静态方法。A.f
self
a.g()
self
那么我们可以在 Python3 中检查一个方法是否被声明为static
?