在Python中,*作为参数是什么意思?

12 浏览
0 Comments

在Python中,*作为参数是什么意思?

这个问题已经有答案了

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

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

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

我知道参数前面的星号表示它是任意数量参数的列表,但独立的星号又代表什么意思呢?

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

这意味着接下来的所有参数都是关键字参数. 正如在官方术语表中的parameter一词下所述:

  • keyword-only: 指定仅能通过关键字提供的参数。关键字参数可以通过在函数定义的参数列表中在它们之前包含单一的var-positional参数或单个裸体的*来定义,例如以下示例中的kw_only1和kw_only2:

    def func(arg, *, kw_only1, kw_only2): ...
    

0