Python函数参数的命名法

2024-04-25 13:25:03 发布

您现在位置:Python中文网/ 问答频道 /正文

args = [4,5]
kwargs = {'x': 7}
func(a, b=2, *args, **kwargs)

a、b、args和kwargs的公认术语是什么?在

特别是在这里填写空白:

^{2}$

我在找一些类似于blank)={formal/any length/actual/variable position/fixed}

如果我错了,请纠正我。在


Tags: argspositionanyvariablelength空白kwargsfixed
2条回答

您要查找的大部分内容都可以在the Python Tutorial中找到。在

从左到右:

  • a是一个位置参数。在
  • b=3是一个默认值为3的位置参数。在
  • *args是一个任意参数列表,解包为元组。在
  • **kwargs是一个关键字参数,解压为字典。在

正如爱德华·洛珀所描述的,你的条件是正确的。你只能说得更具体:

  1. “a”是第一个必需的位置参数。在
  2. “args”传递非法的位置参数。(你知道,因为你在关键字参数之后使用它。)
  3. “b”是一个可选的关键字参数…名为b。默认值为2。在
  4. “kwargs”传递任意关键字参数。在

    def punk(a, b, *args, **kwargs):
        print a
        print b
        print args
        print kwargs
    
    a=1; b=2; args = [4,5]; kwargs={'x':7}
    punk(a, b=b, *args, **kwargs)
    Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
    TypeError: punk() got multiple values for keyword argument 'b'
    

如果您合法地使用args,那么可以说它用于传递可能需要的任意位置参数。在

^{pr2}$

相关问题 更多 >