gpt4 book ai didi

python - 德摩根定律是 Pythonic 吗?

转载 作者:IT老高 更新时间:2023-10-28 20:21:29 26 4
gpt4 key购买 nike

以下哪个 if 语句更符合 Python 风格?

if not a and not b:
do_something

if not ( a or b ):
do something

它不是谓词逻辑,所以我应该使用 Python 关键字,因为它更易读对吧?

在后面的解决方案中比另一个更优化? (我不相信。)

有没有关于这方面的 PEP-8 指南?

两种方法的字节码(如果重要的话):

In [43]: def func1():
if not a and not b:
return
....:
....:

In [46]: def func2():
if not(a or b):
return
....:
....:

In [49]: dis.dis(func1)
2 0 LOAD_GLOBAL 0 (a)
3 UNARY_NOT
4 JUMP_IF_FALSE 13 (to 20)
7 POP_TOP
8 LOAD_GLOBAL 1 (b)
11 UNARY_NOT
12 JUMP_IF_FALSE 5 (to 20)
15 POP_TOP

3 16 LOAD_CONST 0 (None)
19 RETURN_VALUE
>> 20 POP_TOP
21 LOAD_CONST 0 (None)
24 RETURN_VALUE

In [50]: dis.dis(func2)
2 0 LOAD_GLOBAL 0 (a)
3 JUMP_IF_TRUE 4 (to 10)
6 POP_TOP
7 LOAD_GLOBAL 1 (b)
>> 10 JUMP_IF_TRUE 5 (to 18)
13 POP_TOP

3 14 LOAD_CONST 0 (None)
17 RETURN_VALUE
>> 18 POP_TOP
19 LOAD_CONST 0 (None)
22 RETURN_VALUE

最佳答案

我会说哪个更容易阅读,这取决于 a 和 b 是什么。

关于python - 德摩根定律是 Pythonic 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13012459/

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