-2
我有問題,與下面的練習:https://pythonprogramming.net/decorators-intermediate-python-tutorial/ 這裏是代碼我想寫:函數封裝運動(裝飾)
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())
這裏是我的代碼:
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())
我PyCharm工作,這裏是它給我的錯誤:
line 17, in <module>
print(new_gpu())
TypeError: 'str' object is not callable
我被困在這一點,無法找出出了什麼問題,任何幫助表示讚賞!
使用'returns wrapped_item'。目前,你在返回*之前調用了函數,這會導致'new_gpu'被分配給'wrapped_item()'的結果,這是'str'的結果。 –
爲什麼你想寫的代碼與你寫的代碼不同? – martineau
代碼是不同的,因爲我不想重寫他的代碼,但創建了我自己的代碼,但在給定的練習中 – econ