Python:定义函数的参数,包括其他函数的参数

时间:2017-11-13 07:48:09

标签: python function arguments

请告诉我是否有重复的(我相信有)并且我会删除帖子。我只是不确定这个问题的行话。

在编写包含已定义的其他函数augmented_func的新函数original_func时,我试图避免定义original_func中已有的参数:

def original_func(a1, a2 ,a3):
    print(a1, a2, a3)

def augmented_func(b, a1, a2, a3):
    print(original_func(a1, a2, a3), b)

如何在定义a时避免编写augmented_func,并使其更简单,尤其是当original_func的参数数量超过三个时,这个例子?

2 个答案:

答案 0 :(得分:2)

对任意数量的位置参数使用*表示法:

def augmented_func(b, *args):
    print(original_func(*args), b)

augmented_func('b', 1, 2, 3)

或者使用**的关键字参数:

def augmented_func(b, **kwargs):
    print(original_func(**kwargs), b)

augmented_func('b', a1=1, a2=2, a3=3)

答案 1 :(得分:1)

我认为你所寻找的是像

def original_func(a1, a2 ,a3):
    print(a1, a2, a3)

def augmented_func(b, *args):
    print(original_func(*args), b)

您可以将其称为augmented_func(1, 2, 3, 4)

*args**kwargs是传递可变数量的参数并将它们传递给其他内部函数调用的好方法。

Python docs了解更多信息。