* 作为python中的参数是什么意思?

Ret*_*nix 8 python parameters arguments

我正在浏览这个代码文件,然后我找到了这个类:

class StreamPlaylistEntry(BasePlaylistEntry):
def __init__(self, playlist, url, title, *, destination=None, **meta):
    super().__init__()
Run Code Online (Sandbox Code Playgroud)

我知道参数前面的星号表示它是任意数量参数的列表,但星号本身是什么意思?

Gra*_*her 12

这意味着之后的所有参数都是关键字。正如官方词汇表中的参数词下所说:

  • 仅关键字:指定只能由关键字提供的参数。可以通过*在它们之前的函数定义的参数列表中包含单个 var-positional 参数或裸参数来定义仅关键字参数,例如下面的 kw_only1kw_only2

    def func(arg, *, kw_only1, kw_only2): ...
    
    Run Code Online (Sandbox Code Playgroud)