概括我的python函数

时间:2018-08-13 13:28:04

标签: python function

我试图使我的函数能够接受所需的任意数量的输入。

目前,我有3个经过硬编码的输入(loc1loc2loc3)。有没有一种方法可以使输入保持可变,因此,如果我只有1个输入,或者如果我有5个输入,我的函数可以很灵活?

def np_array(loc1, loc2, loc3):
    loc_a = np.array(loc1)
    loc_b = np.array(loc2)
    loc_c = np.array(loc3)

    pressure_vector1 = np.subtract(loc_a, loc_c)
    pressure_vector2 = np.subtract(loc_a, loc_b)

    movement_vector = np.add(pressure_vector1, pressure_vector2)

    return movement_vector

2 个答案:

答案 0 :(得分:2)

您可以为此使用*args**kwargs

在Python中,*args的单星号形式可以用作参数,以将非关键字的变长参数列表发送给函数。值得注意的是,星号(*是此处的重要元素,因为args一词是已建立的常规习语,尽管它不受语言约束。

**kwargs的双星号形式用于将带有关键字的可变长度参数字典传递给函数。同样,两个星号(**)是此处的重要元素,因为通常使用kwargs一词,尽管该语言未强制使用。

*args**kwargs一样,您可以接受许多要提供的参数。但是,**kwargs*args的不同之处在于您需要分配关键字。

要了解有关此内容的更多信息,我推荐this很棒的帖子

答案 1 :(得分:0)

您可以使用默认参数使该函数更加灵活,例如:

def np_array(loc1=None, loc2=None, loc3=None):
    # ensure you don't use None type variables
    if loc1 is None:
        loc1 = 'sensibleDefaultValueGoesHere'
    # repeat as often as needed before you proceed with the

    # actual calculation ...