'NoneType' object is not callable

Résolu
LucasStagnette -  
 LucasStagnette -
Bonjour,
Je ne comprend pas le message d'erreur. J'appelle pourtant ma fonction hello normalement.
Merci par avance de vos retours
Voici ci dessous mon code et le message d'erreur :
def announce(f):
    def wrapper():
        print("About to run the function...")
        f()
        print("Done with the function.")
        return wrapper

@announce
def hello():
    print("hello, world !")

hello()


Voci le message d'erreur :
Traceback (most recent call last):
File "C:\Users\User\Desktop\temp.py", line 12, in <module>
hello()
TypeError: 'NoneType' object is not callable
A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
as-tu essayé en supprimant la ligne 8?
0
LucasStagnette
 
Bonjour,
Effectivement en supprimant la ligne 8, ça affiche "hello, world!", mais ce n'est pas mon but, (désolé je l'ai pas commenté).
Je souhaite enfait que lorsque j'appelle ma fonction hello, on affiche "About to run the function..."
puis la fonction s'exécute et finalement ça affiche "Done with the function.".
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
La fonction announce n'est pas correctement définie.
Que devrait-elle retourner? Que retourne-t-elle?
1
LucasStagnette
 
Ah super, merci beaucoup, erreur d'indentation de ma part, il suffit juste de décaler le return a gauche et ça marche, voici le résultat :
About to run the function...
hello, world !
Done with the function.
Merci beaucoup
0