在 Python 中设置多行 if 语句的样式
Styling multiline if statements in Python
Python 中多行 if 语句的推荐样式是使用圆括号来分隔if
语句。and
PEP8 风格指南建议在反斜杠上使用括号,并在布尔值和运算符之后放置换行符
or
。
主程序
if ('hi' == 'hi' and len('hi') == 2 and 2 == 2): # 👈️ last lines with extra indentation print('success') # 👇️ all conditions on separate lines if ( 'hi' == 'hi' and len('hi') == 2 and 2 == 2 ): print('success') # 👇️ using backslash for line continuation (discouraged by pep8) if 'hi' == 'hi' and \ len('hi') == 2 and \ 2 == 2: print('success')
根据官方
PEP8 风格指南,换行的首选方法是在圆括号、方括号和大括号内使用 Python 的隐式续行。
该指南不建议使用反斜杠来续行。
该指南还建议在布尔运算符和之后放置换行符。
and
or
代码示例中的第一个示例使用额外的缩进来区分if
语句中的条件和if
块中的代码。
主程序
# ✅ GOOD if ('hi' == 'hi' and len('hi') == 2 and 2 == 2): # 👈️ last lines with extra indentation print('success')
与对条件和if
块使用相同级别的缩进相比,这使我们的代码更具可读性。
主程序
# ⛔️ BAD (same level of indentation for conditions and body of if statement) if ('hi' == 'hi' and len('hi') == 2 and 2 == 2): print('success')
您还可以将if
语句中的所有条件移动到单独的行中。
主程序
# ✅ GOOD if ( 'hi' == 'hi' and len('hi') == 2 and 2 == 2 ): print('success')
使用这种方法时,您不必对条件使用额外的缩进,因为右括号将条件与
if
语句主体分开。对于较长if
的语句,我发现这比前面的示例更容易阅读。
尽管 PEP8 风格指南不鼓励使用反斜杠来续行,但它仍然是一种完全有效的语法。
主程序
if 'hi' == 'hi' and \ len('hi') == 2 and \ 2 == 2: print('success')
使用此方法时,请确保为最后一行条件添加额外的缩进。
如果您对条件和
if
语句主体使用相同级别的缩进,代码将变得难以阅读。
主程序
# ⛔️ BAD (same level of indentation for conditions and `if` body) if 'hi' == 'hi' and \ len('hi') == 2 and \ 2 == 2: print('success')