在函数声明中,星号*单独出现代表什么意思?

13 浏览
0 Comments

在函数声明中,星号*单独出现代表什么意思?

这个问题已经有了答案:

函数参数中的裸星号是什么意思?

在以下代码中(在pprint库中找到),*表示什么意思?

def pformat(object, indent=1, width=80, depth=None, *, compact=False):
    """Format a Python object into a pretty-printed representation."""
    return PrettyPrinter(indent=indent, width=width, depth=depth,
                         compact=compact).pformat(object)

如果是*args,那么它将是任意数量的位置参数,参数的值将在名为args的元组中。前4个参数可以通过名称或位置赋值,而compact参数只能通过名称赋值...

好的,NO!因为它与文档不一致:

在函数调用中,关键字参数必须遵循位置参数。

那么在其他命名参数后面和前面的星号是做什么的?它如何使用?或者为什么它在那里,如果它没有被使用?

admin 更改状态以发布 2023年5月21日
0
0 Comments

当没有可变参数时,它将位置参数与只接受关键字参数的参数分开。 这是仅适用于Python 3的功能。

0