在Python中检查函数是否返回false

27

我当前正在使用Python实现以下功能:

if user_can_read(request.user, b) == False:

有没有其他方式来检查函数是否返回 False


15
如果 function_return_boolean() 返回值为假: - nhahtdh
3
如果 request.user 没有权限阅读 b,则返回 False - Joran Beasley
BDFL建议明确检查返回值是否为bool的实例,而nhahtdh的方法则是如果您特别想与False进行比较而不仅仅是任何falsy值,则应使用该方法,因为is False几乎总是一个错误。 - Wooble
1个回答

47

你可以直接使用

if user_can_read(request.user, b):
    ## do stuff

如果 user_can_read 返回任何值(除了0、False等),它都将被视为True,并执行相关操作。

而对于否定情况:if not user_can_read(request.user, b)


2
作为一个旁注,一个常见的错误是假设负数会评估为“False”(假)。这是错误的,bool(-1) 评估为 True(真)。 - Joel Cornett
8
@Joel:人们真的相信负数会被评估为“False”吗?这让我感到惊讶。 - Adam Rosenfield
@AdamRosenfield:我遇到过这种情况几次。这可能源于传统上,没有结果的搜索应该返回“-1”(因为“0”被第一个索引占用)。 - Joel Cornett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接