在下面的方法定义,什么是*和**为做param2?
def foo(param1, *param2):
def bar(param1, **param2):
Run Code Online (Sandbox Code Playgroud) python syntax parameter-passing variadic-functions argument-unpacking
当与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)