Python中的命名关键字参数【*】以及位置关键字参数【/】

今天在查看Python文档的多线程部分时发现如下代码

class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)

问题

第一次遇见定义函数用到 *符号,百度搜了一下【python函数参数中的单独的*】发现没找到有意义的内容,后边慢慢翻了文档才知道这个叫【命名关键字参数】官方文档【4.7.3. Special parameters】
表示*之后位置的参数必须通过参数名传参,不能通过位置传参

扩展

同样的还有位置关键字参数/,表示/之前的参数只能通过位置传参,不能通过参数名传参

官当文档示例

def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):
      -----------    ----------     ----------
        |             |                  |
        |        Positional or keyword   |
        |                                - Keyword only
         -- Positional only

版权声明:
作者:Sunrise
链接:https://www.qlm.life/?p=236
来源:迷迭记录
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>