gpt4 book ai didi

python - 为什么 co_argcount 返回 2,而不是 4?

转载 作者:行者123 更新时间:2023-12-02 19:05:37 24 4
gpt4 key购买 nike

在下面的函数中,有四个参数abcd

def f(a, b = 10, *c, **d):
return (a, b, c, d)

但是,当我记录该函数代码对象的 co_argcount 属性时,我得到了 2 返回。

>>> f.__code__.co_argcount
2
>>> f.__code__.co_nlocals
4

为什么会这样呢? co_argcount 不应返回 4,因为该函数有四个参数。

为什么cd被称为局部变量,而不是参数?

最佳答案

Returns the number of positional arguments (including arguments withdefault values).

https://python-reference.readthedocs.io/en/latest/docs/code/argcount.html

Returns the number of local variables used by the function (includingarguments).

https://python-reference.readthedocs.io/en/latest/docs/code/nlocals.html

所以在你的情况下只有两个位置参数( a 和 b )

而局部变量a,b,c,d

如果我们定义额外的局部变量,则 nlocal 的输出:

enter image description here

官方链接:https://docs.python.org/3/library/inspect.html

关于python - 为什么 co_argcount 返回 2,而不是 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65093640/

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