如何为python函数的可选参数定义备用默认值(无)?

时间:2018-01-22 17:16:36

标签: python python-3.x numpy

我有一个带有多个参数的函数,其中一些参数应该是可选的。我希望参数能够使用numpy数组。如果给出参数,则在调用函数时,我想执行操作。 我正在尝试使用与此类似的东西(实际操作更复杂):

def func(a, b = None, c = None):
    a*2
    if b != None:
        b*2
        if c != None:
            c*2

这很有效,只要我不将数组传递给这些可选参数。当我为b或c传递数组时,如果没有if b != Noneany(),则all()无效。如果我更改它,它在使用所有可选参数时都有效,但如果不使用它们则不再有效。

有没有办法使用某些东西代替None,这样我就可以使用if语句作为默认值/对象以及传入函数的数组。

它应该与此类似(与None不同):

def func(a, b = None, c = None):
    a*2
    if b.all() != None:
        b*2
        if c.all() != None:
            c*2

我还要感谢任何更好的方法来简单地询问是否为函数提供了可选参数。

1 个答案:

答案 0 :(得分:4)

此处不要使用!=;您正在测试数组的所有值是否不等于None。相反,使用is身份测试:

if b is not None:
    # ...

isis not不会在数组中广播。

在测试is时,总是使用is notNone,因为它保证是单身。