J'ai problème avec l'exercice suivant: https://pythonprogramming.net/decorators-intermediate-python-tutorial/ est le code que je ici voulais écrire:exercice d'emballage de fonction (décorateurs)
def add_wrapping(item):
def wrapped_item():
return 'a wrapped up box of {}'.format(str(item()))
return wrapped_item
@add_wrapping
def new_gpu():
return 'a new Tesla P100 GPU!'
print(new_gpu())
Voici mon code:
def add_wrapping(item):
def wrapped_item():
return "a wrapped up box of {}".format(str(item()))
return wrapped_item()
@add_wrapping
def new_gpu():
return "new car!"
print(new_gpu())
Je travaille dans PyCharm, voici une erreur qu'il me donne:
line 17, in <module>
print(new_gpu())
TypeError: 'str' object is not callable
Je suis coincé à ce stade, ne peut pas comprendre ce qui s'est mal passé, toute aide est appréciée!
utilisez 'return wrapped_item'. Actuellement vous appelez la fonction avant de renvoyer *, ceci entraîne l'assignation de 'new_gpu' au résultat de' wrapped_item() 'qui est un' str'. –
Pourquoi le code que vous vouliez écrire est-il différent du code que vous avez écrit? – martineau
Le code est différent parce que je n'ai pas voulu réécrire son code mais j'ai créé le mien, mais je suis resté dans l'exercice donné – econ