Python中文
首页
教程
问答
标签
搜索
登录
注册
Python函数中的参数太多/太少时为什么会出现TypeError
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我很难理解为什么Python在提供不是方法签名一部分的参数时会引发<code>TypeError</code>。在</p> <p>示例:</p> <pre><code>>>> def funky(): ... pass ... >>> funky(500) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: funky() takes no arguments (1 given) </code></pre> <p>我想,如果这是因为<code>*args</code>应该是<code>None</code>或{<cd4>}在无参数函数的作用域内,那就是<a href="http://www.python.org/dev/peps/pep-3102/" rel="nofollow">leaky abstraction</a>,所以我查了一下。在</p> <h3>我的发现</h3> <p>在<a href="http://www.python.org/dev/peps/pep-3102/" rel="nofollow">PEP-3102</a>上搜索<code>TypeError</code>时,找到了似乎是某个上下文中{<cd1>}被提出的理由,但我不明白这种理由。PEP的示例基本上说明了该功能基本上是<code>if args: raise TypeError()</code>的快捷方式。<code>args</code>在这种情况下是一个非空列表,而不是空列表。。。它们都是同一类型的。如果我没搞错的话,<em>确实是正当理由,也许<code>ValueError</code>会更合适。然而,这仍然是一个漏洞百出的抽象,因为这个例子是用Python编写的,使得它更像是某个用例的实现细节,而不是语言特性。类似<code>ArgumentError</code>的东西在这里听起来更合适,这让我相信有一些明显的解释,我忽略了为什么{<cd1>}有意义。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你说: def funky(): ... 所以程序“funky”不应该接受任何“参数”。但是当你使用这个程序时,你说funky(参数),而funky不接受参数,所以导致了错误。要修复此问题,请使用;def funky(n):pass。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在Excel中读取公式并将其转换为Python中的计算?
8 回答
如何在excel中读取嵌入的excel,并将嵌入文件中的信息存储在主excel文件中?
4 回答
如何在Excel中返回未知列长度的非空顶行列值?
2 回答
如何在excel中选择数据列?
2 回答
如何在Excel中通过脚本自动为一列中的所有单元格创建公共别名
8 回答
如何在excel中高效格式化范围AttributeError:“tuple”对象没有属性“fill”
3 回答
如何在excel单元格中编写python函数
4 回答
如何在excel单元格中自动执行此python代码?
6 回答
如何在excel工作表中创建具有相应值的新列
10 回答
如何在Excel工作表中复制条件为单元格颜色的python数据框?
5 回答
如何在Excel工作表中循环
5 回答
如何在excel工作表中打印嵌套词典?
4 回答
如何在excel工作表中绘制所有类的继承树?
4 回答
如何在Excel工作表中自动调整列宽?
8 回答
如何在excel工作表中追加并进一步处理
7 回答
如何在excel工作表之间进行更改?
3 回答
如何在excel或csv上获取selenium数据?
3 回答
如何在Excel或Python中将正确的值赋给正确的列
7 回答
如何在excel或python中提取单词周围的文本?
8 回答
如何在excel或python中转换来自Jira的3w 1d 4h的fromat数据?
7 回答