Resumen de uso del modificador de función de golpe pequeño de Python

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()

Supongo que te gusta

Origin blog.csdn.net/fuhao7i/article/details/109575058
Recomendado
Clasificación