gpt4 book ai didi

python - 在位置参数之前使用默认参数

转载 作者:太空狗 更新时间:2023-10-29 18:23:26 24 4
gpt4 key购买 nike

我正在学习在 python 中使用位置参数,还试图了解它们与默认参数混合时的工作方式:-

def withPositionalArgs(ae=9,*args):
print 'ae= ', ae
print 'args = ', args


a=1
b=2
c=[10,20]

withPositionalArgs(a,b,c)

这给了我输出:

ae=  1
args = (2, [10, 20])

如你所见,a被认为是传递给ae的值,bc 被认为是位置参数。

所以,我现在尝试在调用 withPositionalArgs 时为 ae 分配 10:

withPositionalArgs(ae=10,b,c)

但是,我做不到。我收到错误:

SyntaxError: non-keyword arg after keyword arg

我的问题是:

我做得对吗?在 python 函数中的位置参数之前是否允许使用默认参数或使用一个好的做法?

最佳答案

在 Python2 中,不允许将具有默认值的参数放在位置参数之前。

位置参数必须在第一位,然后是具有默认值的参数(或者,调用函数时,关键字参数),然后是*args,然后是**kwargs.

函数定义和函数调用都需要这个顺序。

在Python3中,顺序放宽了。 (例如,*args 可以出现在函数定义中的关键字参数之前。)See PEP3102 .

关于python - 在位置参数之前使用默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12332195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com