Python3: verifica si el método es estático
Pregunta similar (relacionada con Python2):Python: verifica si el método es estático)
Veamos la siguiente definición de clase:
class A:
def f(self):
return 'this is f'
@staticmethod
def g():
return 'this is g'
En Python 3 no hayinstancemethod
más, todo es función, por lo que la respuesta relacionada con Python 2 ya no funcionará.
Como dije, todo es función, así que podemos llamar.A.f(0)
, pero por supuesto no podemos llamarA.f()
(argumento error). Pero si hacemos una instancia.a=A()
y llamamosa.f()
Python pasa a la función.A.f
laself
como primer argumento Vocacióna.g()
impide enviarlo o captura elself
- así que tiene que haber una manera de probar si esto es un método estático o no.
Entonces, podemos verificar en Python3 si un método fue declarado comostatic
¿o no?