Modificador de función Pyhton @
Modificador de función
El patrón del decorador a través del decorador simplifica el código.
- La función debe definirse primero y luego modificarse
- El modificador @ debe ser una función definida antes
- Cada función solo puede tener un modificador
Modificador general @functionName
Los modificadores distintos de algunas cadenas específicas (@classmethod, @property, @staticmethod) son todos modificadores ordinarios.
Cuando el intérprete lee el modificador @, primero analizará el contenido después de @, y luego usará directamente la función o clase en la siguiente línea de @ como el parámetro de función después de @, y luego asignará el valor de retorno al objeto de función modificado en la siguiente línea.
P.ej:
@a
@b
def c():
...
El resultado del cálculo es: a (b (c ()))
@classmethod
Modificado con classmethod significa que este es un método de clase, no se requieren parámetros de objeto, pero aún debe llamarse con una instancia de objeto. Si no está decorado con @classmethod, significa que este es un método de objeto y debe estar vinculado a un objeto cuando se usa.
@propiedad
@property convierte un método de instancia en una propiedad de instancia de solo lectura, de modo que se puede acceder a la función como una propiedad de instancia (no se requieren paréntesis).
class Student:
@property
def thisisstaticmethod():
print("hello world!")
Student.thisisstaticmethod
@staticmethod
Modificado por @staticmethod significa que este es un método estático de una clase, que puede ser llamado directamente por la clase. La diferencia con @classmethod es que el primer parámetro del método correspondiente de classmethod es self, mientras que staticmethod no lo es.
Convierta la función en un método estático de clase, que es llamado por la clase en lugar de por el objeto.
class Student:
@staticmethod
def thisisstaticmethod():
print("hello world!")
Student.thisisstaticmethod()