Simmilar問題(與Python2相關:Python: check if method is static)Python3:檢查方法是靜態
讓海外商品會有下面的類定義:
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
?
我能問你爲什麼要做這個答案下面? –
當然,我正在做我自己的插件框架,我想檢查一些接口聲明,我很想知道是否有聲明爲staticmethod或不:) :) –