gpt4 book ai didi

python - 返回 True 和 None 与 True 和 False 是 Pythonic 吗?

转载 作者:行者123 更新时间:2023-12-05 08:48:41 24 4
gpt4 key购买 nike

<分区>

这种编码风格已经变成 Pythonic 了吗?是Python社区的人推荐的吗?我最近看到有人使用它,这让我很惊讶。

def is_forty_two(val):
if val == 42:
return True

它返回 True 或 None,而不是 True 或 False。因为 bool(None) == False,所以这种代码适用于大多数您希望使用它的地方。

但对我来说,这显然是一种非常危险的编码风格。当我看到混合返回值的代码并在没有声明返回值的情况下运行结束时,我的错误检测器就会关闭。但也许我错了?在 PyCharm 中测试这段代码,我发现 PyCharm 没有标记问题,而是将函数的返回类型显示为“-> bool”???

当我在末尾添加 return None 时,它​​并没有改变它的工作方式,PyCharm 随后将返回类型显示为预期的“Optional[bool]”。

这是一个错误(还是 PyCharm 缺乏复杂性来捕捉这个?)

或者这种风格在 Python 中变得“可接受”了吗?

我会把它写成更简单的形式:

def is_some_test(val):
return val == 42

或者如果测试更复杂或者可能是一串 if 和 else,我会使用这样的样式:

def is_some_test(val):
if complex_test1(val):
return True
if complex_test2(val):
return True
return False

我绝不会故意允许函数返回 True/None 而不是 True/False。作为编码风格的一个长期问题(从数十年的 C 编程来看),任何返回显式值的函数我总是构建代码,使其以显式 return 语句作为函数的最后一行结束。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com