1

给定:

def psum(a,b,c):
    return a**b+c

以及 我该怎么做-> 等价物x = [1,2]y = 3psum(*x,3)

我不想这样做,x[0], x[1]因为函数返回x并调用它两次会效率低下。一个可以吗z = function(a)。哪里z = x。然后做z[0]z[1]

但我想知道是否可以这样做并以这种方式使用位置参数。

此外,使用包装器。

编辑:不能使用名称,因为我没有实现函数并且函数编写者没有使用命名参数:/

4

2 回答 2

2

你可以这样做:

psum(*x + [y])
于 2012-10-12T18:22:47.780 回答
1

在这种情况下,参数的顺序无关紧要,所以psum(3,*x)会起作用。

在稍微更一般的情况下,如果您知道参数的名称,

psum(*x,c=3)

sum似乎也对我有用,但如果定义为它需要可变参数,它将不起作用......

我认为在不修改您传递给的对象的情况下,在完全一般的情况下没有办法做到这一点psum

x.append(3)
psum(*x)
于 2012-10-12T18:15:25.800 回答