我有以下方法:
def get_data(replace_nan=False):
if replace_nan is not False
data[numpy.isnan(data)] = replace_nan
return data
else:
return data[~numpy.isnan(data)]
因此,如果 replace_nan
为 False,我们返回一些数据数组但删除 NaN
,如果是其他情况,我们替换 NaN
s 与参数。
问题是,我可能想用 False
替换 NaN
。或其他任何东西,为此。最pythonic的方法是什么?这:
def get_data(**kwargs):
if "replace_nan" in kwargs:
...
有效,但在语义上很丑陋(因为我们真的只对一个关键字参数感兴趣,replace_nan
)如何处理这种情况有什么建议吗?
最佳答案
通常人们使用 None
作为默认值,然后检查 is not None
。
如果您也需要允许 None
,请使用虚拟对象:
__default = object()
def get_data(replace_nan=__default):
if replace_nan is __default:
...
关于arguments - Python 中可选参数的默认值 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10599346/