【发布时间】:2010-02-01 20:10:31
【问题描述】:
在 cPython 2.4 中:
def f(a,b,c,d):
pass
>>> f(b=1,c=1,d=1)
TypeError: f() takes exactly 4 non-keyword arguments (0 given)
但是:
>>> f(a=1,b=1,c=1)
TypeError: f() takes exactly 4 non-keyword arguments (3 given)
显然,我真的很了解 Python 的函数参数处理机制。有人愿意分享一些关于这方面的信息吗?我看到了正在发生的事情(比如填充参数槽,然后放弃),但我认为这会搞砸新手。
(另外,如果人们有更好的问题关键字——比如“guts”——请重新标记)
【问题讨论】:
-
只是出于好奇,您希望 Python 在您给出的两个示例中做什么?
-
我希望它说 3 给了两者。