指定 None 作为布尔函数参数的默认值?

问题描述 投票:0回答:1

numpy.histogram
的原型包含类型为
density
的输入参数
bool
和默认值
None
。 如果调用者不提供
density
,它的值是什么?

我能找到的最接近的问答是this第一个答案说“不要使用

False
作为非
bool
字段的值”,这不适用于此处。 它还说
bool(x)
返回
False
,但这并不能向调用者保证,如果未提供,该函数会将
density
设置为
False
。 这是
numpy.histogram
原型文档中的错误,还是我遗漏了有关文档约定的内容?

上述问答的其他答案似乎与我的问题无关。

python default-arguments
1个回答
0
投票

从方法的源代码中,我们可以看到

density
参数仅在方法末尾的
if
语句中使用。

在 Python 中,

None
被解释为
False
(是一个 falsy 值)。这意味着向
None
numpy.histogram
参数提供
density
相当于为其提供
False

我想开发人员发现对于用户尚未定义的值,使用

None
而不是
False
更合适。

© www.soinside.com 2019 - 2024. All rights reserved.