似たような質問(Python2に関連:Python:メソッドが静的かどうかを確認してください)
次のクラス定義を考えてみましょう。
class A:
def f(self):
return 'this is f'
@staticmethod
def g():
return 'this is g'
Python 3にはinstancemethod
もう存在せず、すべてが機能しているため、Python2に関連する答えは機能しなくなります。
私が言ったように、すべてが関数なので、呼び出すことはできますA.f(0)
が、もちろん呼び出すことはできませんA.f()
(引数の不一致)。しかし、インスタンスを作成し、Pythona=A()
を呼び出すと、最初の引数として関数に渡されます。呼び出すと、送信が妨げられたり、キャプチャされたりします。したがって、これがstaticmethodであるかどうかをテストする方法が必要です。a.f()
A.f
self
a.g()
self
では、メソッドが宣言されているかどうかをPython3でチェックインできstatic
ますか?