我有一个带有多个参数的函数,其中一些应该是可选的。我希望参数能够与 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:
# ...
is
和is not
不会跨阵列广播。
无论如何,在测试None
时,您应该始终使用 is
和 is not
,因为它可以保证是单例。