【发布时间】:2018-11-23 19:28:15
【问题描述】:
当我在 python 中为我的函数编写文档字符串时,我有时想写一些关于参数规范的东西:
def foo(bar):
"""
Do some stuff.
bar : callable
must return True if XXX and False otherwise.
"""
if bar(...):
... # code goes here
但是,这并不完全准确,因为在此示例中,bar 可能会返回任何对象,当满足条件 XXX 时,该对象将在 if 语句中评估为 True。这样的可调用对象将是传递给foo 的完全有效的参数。
我应该如何制定我的文档以反映 foo 并不严格要求 bar 的输出为布尔值?
我的第一步是写类似“[...] must return an object that will beevaluate to True if ...”,但我发现它被混淆了。
【问题讨论】:
-
常用的指代方式是 truthy 和 falsey。但是,这实际上根本没有要求,因为
bar()返回的任何值要么是真要么是假。 -
对象如何评估为真或假通常被称为“真实性”。另外,falsey is often spelled falsy.
-
@JohnGordon 有一些例外,比如 numpy 数组。有关详细信息,请参阅this。
-
@timgeb 够公平的。
-
您可以说
bool(bar())必须评估为True或False?