如何为 python 函数的可选参数定义替代默认值(无)



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

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

这很好用,只要我不将数组传递到这些可选参数中。当我为 b 或 c 传递数组时,没有 any()all() if b != None就不起作用。如果我更改它,当使用所有可选参数时它确实有效,但如果不使用它们,则不再有效。

有没有办法使用某些东西代替None这将允许我对默认值/对象使用 if 语句以及我传递给函数的数组。

它应该看起来像这样(与None不同(:

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

我也希望有更好的方法来简单地询问是否为函数提供了可选参数。

不要在这里使用!=;你正在测试数组的所有值是否都不等于None。请改用is身份测试:

if b is not None:
    # ...

isis not不会跨阵列广播。

无论如何,在测试None时,您应该始终使用 isis not,因为它可以保证是单例。

最新更新