这在语法上是可能的,但实际上可能吗?
def func(arg1, *args2, arg3 = None):
....
我们永远无法访问arg3
,我是对的吗?如果是这样,为什么Python允许这个?
答案 0 :(得分:0)
您声明的是具有至少一个位置参数和一个必需的仅限关键字参数的函数。如果要传递func('arg', 1, 2, 3, 'whatever', arg3=2)
的值,可以将其称为arg3
。例如,
>>> def func(arg1, *args2, arg3=None):
... print('arg1', arg1)
... print('args2', args2)
... print('arg3', arg3)
...
>>> func(1, 2, 3, 4, 5, 6)
arg1 1
args2 (2, 3, 4, 5, 6)
arg3 None
>>> func(1, arg3=2)
arg1 1
args2 ()
arg3 2
>>>
答案 1 :(得分:0)
您可以使用arg3参数调用它。你只需要明确告诉它:
func('arg1', 'some' 'values', 'that', 'will be', 'treated', 'as *arg2', arg3 = 'new value')
通过这种方式,您将获得arg3 = 'new value'