Je m'enseigne moi-même à coder à l'aide de tutoriels en ligne. J'ai rencontré des «décorateurs», je peux sembler comprendre comment cela fonctionne mais quelque chose me dérange. Voici le code donné:Décorateurs, fonctions d'appel sans parenthèses?
def decor(func):
def wrap():
print("-----------")
func()
print("-----------")
return wrap
def print_text():
print("Hello World")
decorated = decor(print_text)
decorated()
output:
-----------
Hello World
-----------
Les choses que je veux comprendre sont:
Pourquoi avez-vous appeler « enveloppe de retour » au lieu de « wrap de retour() »? Alors que si vous ne le faites pas, vous obtiendrez un objet "TypeError: 'NoneType" qui n'est pas appelable
Lorsque j'ai affecté la valeur de la variable décorée, pourquoi ai-je dû utiliser "print_text" plutôt que "print_text"() "alors que cela provoquera le même TypeError si je le fais?
Lorsque j'ai utilisé la variable" décoré ", pourquoi ai-je dû l'appeler comme une fonction (ajouter() à la fin). appeler à l'aide « print (décoré) » « décorée » ou il dit quelque chose de complètement différent
?
Désolé pour les questions idiotes. Mais je ne fais que commencer alors s'il vous plaît ours avec moi. Aussi s'il vous plaît faites vos réponses pour les débutants. Merci