在Python函数中使用星号(*)作为参数
在Python函数中使用星号(*)作为参数
这个问题已经在函数参数中的星号有什么作用?这里有了答案:
我正在查看glob
函数的定义,我注意到第二个参数只是一个*
。
def glob(pathname, *, recursive=False): """Return a list of paths matching a pathname pattern. [...] """ return list(iglob(pathname, recursive=recursive))
这个*
有什么意义?
admin 更改状态以发布 2023年5月23日
*
表示位置参数的结尾。之后的每个参数只能通过关键字指定。这在 PEP 3102 中定义。
>>> def foo1(a, b=None): ... print(a, b) ... >>> def foo2(a, *, b=None): ... print(a, b) ... >>> foo1(1, 2) 1 2 >>> foo2(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: foo1() takes 1 positional argument but 2 were given >>> foo2(1, b=2) 1 2