gpt4 book ai didi

python - 最好的做法是包含一个 else : pass statement at the end of a Python if or if/elif statement?

转载 作者:行者123 更新时间:2023-12-03 15:08:54 26 4
gpt4 key购买 nike

如果我写:

if a == b:
# do something
elif a == c:
# do something else

我只想通过其他方式,最后是否需要写出以下内容?:
else:
pass

如果没有 else:,它似乎运行良好解释器中的声明,是否有我不知道我应该始终包含 else: pass 的原因在这些情况下?

最佳答案

不,它不是,else套件完全是可选的。
来自 if statement documentation :

if_stmt ::=  "if" expression ":" suite
             ( "elif" expression ":" suite )*
["else" ":" suite]
哪里 (...)*表示零个或多个,以及 [...]表示可选。所以一个有效的 if复合语句有一个 if线路和套件,0 或更多 elif线路和相应的套件,最多一个 else线路和套件,这是可选的。
Python 编译器将忽略任何 else: pass块,包含它真的没有意义:
>>> import dis
>>> dis.dis(compile('''\
... if True:
... foo
... else:
... pass
... ''', '<stdin>', 'exec'))
1 0 LOAD_NAME 0 (True)
3 POP_JUMP_IF_FALSE 13

2 6 LOAD_NAME 1 (foo)
9 POP_TOP
10 JUMP_FORWARD 0 (to 13)

4 >> 13 LOAD_CONST 0 (None)
16 RETURN_VALUE
>>> dis.dis(compile('''\
... if True:
... foo
... ''', '<stdin>', 'exec'))
1 0 LOAD_NAME 0 (True)
3 POP_JUMP_IF_FALSE 13

2 6 LOAD_NAME 1 (foo)
9 POP_TOP
10 JUMP_FORWARD 0 (to 13)
>> 13 LOAD_CONST 0 (None)
16 RETURN_VALUE
其中唯一的区别是附加到 LOAD_CONST 的行号字节码,因为第一个源示例中有额外的行。
在风格上, else: pass只是杂乱,降低可读性的东西。

关于python - 最好的做法是包含一个 else : pass statement at the end of a Python if or if/elif statement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22865572/

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