相关疑难解决方法(0)

2149
推荐指数
17
解决办法
65万
查看次数

理解python3函数中的'*'"仅关键字"参数表示法

当与partial一起使用时,我在python3中遇到关键字唯一参数功能的一些困难行为.关于仅关键字参数的其他信息.

这是我的代码:

def awesome_function(a = 0, b = 0, *, prefix):
    print('a ->', a)
    print('b ->', b)
    print('prefix ->', prefix)
    return prefix + str(a+b)
Run Code Online (Sandbox Code Playgroud)

以下是我对部分的理解:

>>> two_pow = partial(pow, 2)
>>> two_pow(5)
32
>>>
Run Code Online (Sandbox Code Playgroud)

我在上面的例子中理解的是,partial使第二个参数pow作为唯一的参数two_pow.

我的问题是为什么以下工作:

>>> g = partial(awesome_function, prefix='$')
>>> g(3, 5)
a -> 3
b -> 5
prefix -> $
'$8'
>>>
Run Code Online (Sandbox Code Playgroud)

但我得到的错误是:

>>> awesome_function(prefix='$', 3, 5)
  File "<stdin>", line 1
SyntaxError: non-keyword arg after …
Run Code Online (Sandbox Code Playgroud)

python keyword-argument python-3.x

6
推荐指数
1
解决办法
2129
查看次数