【发布时间】:2017-11-05 09:25:24
【问题描述】:
我对以下练习有疑问: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
我被困在这一点上,不知道出了什么问题,感谢任何帮助!
【问题讨论】:
-
使用
return wrapped_item。目前,您在返回之前调用函数,这导致new_gpu被分配给wrapped_item()的结果,即str。 -
为什么你要写的代码和你写的代码不一样?
-
代码不同,因为我不想重写他的代码,而是创建了自己的代码,但仍然在给定的练习中
标签: python python-3.x python-decorators