Python中文
首页
教程
问答
标签
搜索
登录
注册
下面的两段代码有什么不同。对我来说,他们看起来几乎一模一样,但他们的行为却完全不同
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有两个看起来几乎完全相同的代码片段。但是,当我运行它们时,第一个代码段运行得非常好。当我运行第二个脚本时,得到错误:<code>TypeError: 'NoneType' object is not callable</code></p> <p>为什么???你知道吗</p> <p>我试过重新命名函数。我试过修改函数中的文本。你知道吗</p> <pre><code>def cough_dec(func): def func_wrapper(): print("*cough*") func() print("*cough*") return func_wrapper @cough_dec def question(): print('can you give me a discount on that?') @cough_dec def answer(): print("it's only 50p, you cheapskate") question() answer() ============================================= def c_dec(func): def wrapper_func(): print('something') func() print('anything') return wrapper_func() @c_dec def say_hello(): print("Hello World!") @c_dec def bye(): print("Goodbye World!") say_hello() bye() </code></pre> <p>如果我去掉第二段中的括号,一切都很好,但为什么呢?你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>引用函数对象和调用所述函数之间有很大的区别。括号表示函数调用。如果函数中不存在return语句,则函数返回<code>None</code>。你知道吗</p> <p>正如人们所料,<code>None</code>是不可调用的,但函数对象是!你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在python中从数据帧列中删除分类值?
7 回答
如何在python中从数据帧列表中删除引号
4 回答
如何在python中从数据帧创建列表
5 回答
如何在Python中从数据帧创建嵌套的JSON
5 回答
如何在Python中从数据帧显示wordcloud
1 回答
如何在Python中从数据帧的时间戳中删除字符
3 回答
如何在Python中从数据帧绘制简单绘图?
9 回答
如何在python中从数据帧行提取具有特定长度的范围?
6 回答
如何在python中从数据帧设置dict中的值
10 回答
如何在Python中从数据库中获得一个结果
8 回答
如何在python中从数据框中绘制分类条形图
3 回答
如何在Python中从数据框中选择特定细节?
8 回答
如何在python中从数据集中删除unicode
5 回答
如何在python中从数据集中删除某些数值?
6 回答
如何在python中从数据集中选择行
7 回答
如何在Python中从数组中删除元素
3 回答
如何在python中从数组中删除单个倒逗号?
2 回答
如何在python中从数组中删除对象?
2 回答
如何在python中从数组中删除引号
6 回答
如何在python中从数组中删除所有最小值
10 回答