Petit modificateur de fonction coup Python @ résumé de l'utilisation

Modificateur de fonction

Le motif du décorateur à travers le décorateur simplifie le code.

  • La fonction doit d'abord être définie puis modifiée
  • Le modificateur @ doit être une fonction définie avant
  • Chaque fonction ne peut avoir qu'un seul modificateur

Modificateur général @functionName

Les modificateurs autres que certaines chaînes spécifiques (@classmethod, @property, @staticmethod) sont tous des modificateurs ordinaires.

Lorsque l'interpréteur lit le modificateur @, il analysera d'abord le contenu après @, puis utilisera directement la fonction ou la classe dans la ligne suivante de @ comme paramètre de fonction après @, puis affectera la valeur de retour à l'objet fonction modifié dans la ligne suivante.
Par exemple:

@a
@b
def c():
...

Le résultat du calcul est: a (b (c ()))

@classmethod

Modifié avec classmethod signifie qu'il s'agit d'une méthode de classe, aucun paramètre d'objet n'est requis, mais il doit quand même être appelé avec une instance d'objet. Si elle n'est pas décorée avec @classmethod, cela signifie qu'il s'agit d'une méthode objet et qu'elle doit être liée à un objet lorsqu'elle est utilisée.

@propriété

@property transforme une méthode d'instance en une propriété d'instance en lecture seule, de sorte que la fonction soit accessible comme une propriété d'instance (aucune parenthèse n'est requise).

class Student:
	@property
	def thisisstaticmethod():
		print("hello world!")

Student.thisisstaticmethod

@staticmethod

Modifié par @staticmethod signifie qu'il s'agit d'une méthode statique d'une classe, qui peut être appelée directement par la classe. La différence avec @classmethod est que le premier paramètre de la méthode correspondante de classmethod est self, alors que staticmethod ne l'est pas.

Transformez la fonction en une méthode statique de classe, qui est appelée par la classe plutôt que par l'objet.

class Student:
	@staticmethod
	def thisisstaticmethod():
		print("hello world!")

Student.thisisstaticmethod()

Je suppose que tu aimes

Origine blog.csdn.net/fuhao7i/article/details/109575058
conseillé
Classement