【发布时间】:2016-01-13 07:35:49
【问题描述】:
与partial 一起使用时,我在python3 中遇到了keyword only arguments 功能的一些困难行为。其他 info 仅针对关键字参数。
这是我的代码:
def awesome_function(a = 0, b = 0, *, prefix):
print('a ->', a)
print('b ->', b)
print('prefix ->', prefix)
return prefix + str(a+b)
以下是我对部分的理解:
>>> two_pow = partial(pow, 2)
>>> two_pow(5)
32
>>>
我的理解是在上面的例子中,partial 将pow 函数的第二个参数作为two_pow 的唯一参数。
我的问题是为什么以下工作:
>>> g = partial(awesome_function, prefix='$')
>>> g(3, 5)
a -> 3
b -> 5
prefix -> $
'$8'
>>>
但我在这方面遇到了错误:
>>> awesome_function(prefix='$', 3, 5)
File "<stdin>", line 1
SyntaxError: non-keyword arg after keyword arg
>>>
我知道我可以直接拨打awesome_function
>>> awesome_function(prefix='$', a = 3, b = 5)
a -> 3
b -> 5
prefix -> $
'$8'
>>>
【问题讨论】:
标签: python python-3.x keyword-argument