gpt4 book ai didi

python - 类型错误 : f() takes at least 1 argument (1 given) - Is this a bug in python?

转载 作者:行者123 更新时间:2023-11-28 21:51:43 25 4
gpt4 key购买 nike

使用 python 2.7.6 64 位我输入:

>>> def f(a, b=5):
... pass
...
>>> f(b=3)

然后我得到:

TypeError: f() takes at least 1 argument (1 given)

当然我应该得到一些错误,因为我没有为参数 a 赋值。但是我收到的错误消息没有任何意义(1 至少为 1)。

这是一个错误,对吧?它是固定的吗?我找不到任何相关信息。

谢谢!

最佳答案

不,这不是错误。

为了展示这一点,您可以仅使用 a 运行该函数值:

def f(a, b=5):
print b

a=1
f(a)

输出:

>>> 
5

如您所见,程序打印出 b 的值这是 5。你甚至不必通过 b进入函数,因为它已经由函数本身定义。

如果你要通过 f(b=3) ,就像你做的那样,你会得到一个错误,要求你输入 a变量,因为它尚未在任何地方定义。

TypeError: f() takes at least 1 argument (1 given) #You've given 1 value (b=3), but 1 argument ("a" value) is still needed

这就是为什么如果你运行:

>>> f(a=3)
5

你不会得到任何错误,因为 a值已成功传递给函数。


编辑:

进一步分解:

  • ab是论点

当它说 f() takes at least 1 argument , 这意味着函数 f() 只能与传递给它的一个参数一起使用。但是那个单一的参数必须是 a .

你所做的是通过 b=3给它。 b 也是一个论点(这就是为什么它在你的错误中说 (1 given)),但它不是“必需”的论点。

关于python - 类型错误 : f() takes at least 1 argument (1 given) - Is this a bug in python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com