Python3: Überprüfen Sie, ob die Methode statisch ist
Eine ähnliche Frage (im Zusammenhang mit Python2:Python: Überprüfen Sie, ob die Methode statisch ist)
Lässt folgende Klassendefinition berücksichtigen:
class A:
def f(self):
return 'this is f'
@staticmethod
def g():
return 'this is g'
In Python 3 gibt es keineinstancemethod
jetzt funktioniert alles, daher funktioniert die Antwort für Python 2 nicht mehr.
Wie ich schon sagte, alles funktioniert, also können wir anrufenA.f(0)
, aber wir können natürlich nicht anrufenA.f()
(Argument Fehlanpassung). Aber wenn wir eine Instanz machena=A()
und wir rufen ana.f()
Python wird an die Funktion übergebenA.f
dasself
als erstes argument. Berufunga.g()
verhindert das Senden oder Erfassen derself
- Es muss also eine Möglichkeit geben, zu testen, ob es sich um eine statische Methode handelt oder nicht.
Also können wir in Python3 überprüfen, ob eine Methode als deklariert wurdestatic
oder nicht?