下式给出:
def psum(a,b,c):
return a**b+c
和x = [1,2]
以及y = 3
我该怎么做psum(*x,3)
- >相当于。
我不想做x[0], x[1]
,因为函数返回x
并且调用它两次会效率低下。可以做z = function(a)
。其中z = x
。然后执行z[0]
,z[1]
。
但我想知道是否可以这样做,并以这种方式使用位置参数。
此外,没有使用包装器。
编辑:一个人不能使用名称,因为我没有实现该函数,函数编写者没有使用命名参数:/
答案 0 :(得分:2)
你可以这样做:
psum(*x + [y])
答案 1 :(得分:1)
在这种情况下,参数的顺序无关紧要,因此psum(3,*x)
将起作用。
在稍微更一般的情况下,如果您知道参数的名称,
psum(*x,c=3)
对我来说似乎也有用,但是如果sum
被定义以便它需要varargs就行不通......
在没有修改传递给psum
的对象的情况下,我认为没有办法在完全一般的情况下执行此操作:
x.append(3)
psum(*x)