python可变参数和关键字参数位置_python位置参数和关键字参数

只要看看PEP 3102它似乎也与this有某种联系。

从你的例子def import_(ui, repo, patch1=None, *patches, **opts):

u1,repo and patch1之后的任何位置参数都将以元组的形式封装在补丁中。变量位置参数后面的任何关键字参数都将通过opts包装为字典对象。

另一件重要的事情是,调用方有责任确保不违反条件non-keyword arg after keyword arg。

因此,违反此规则的内容将引发语法错误。。

例如

像这样的电话import_(1,2,3,test="test")

import_(1,2,3,4,test="test")

import_(1,2,3,4,5)

import_(1,2,patch1=3,test="test")

是有效的,但是import_(1,2,3,patch1=4,5)

会引发语法错误SyntaxError: non-keyword arg after keyword arg

在第一个有效案例中import_(1,2,3,test="test")u1 = 1, repo = 2, patch1 = 3, patches = () and opts={"test":"test"}

在第二种有效情况下import_(1,2,3,patch1=4,test="test")u1 = 1, repo = 2, patch1 = 3 , patches = (4) and opts={"test":"test"}

在第三种有效情况下import_(1,2,3,4,5)u1 = 1, repo = 2, patch1 = 3 , patches=(4,5), and opts={}

在第四种有效情况下import_(1,2,patch1=3,test="test")u1 = 1, repo = 2, patch1 = 3 , patches=(), and opts={"test":"test"}

you can use patch1 as a keywords argument but doing so you cannot wrap any variable positional arguments within patches

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值