我有一个关于在 Python 的条件语句中使用括号的简单问题。
以下两个片段的工作原理相同,但我想知道这是否只是因为它的简单性:
>>> import os, socket
>>> if ((socket.gethostname() == "bristle") or (socket.gethostname() == "rete")):
... DEBUG = False
... else:
... DEBUG = True
...
>>> DEBUG
现在没有括号
>>> import os, socket
>>> if socket.gethostname() == "bristle" or socket.gethostname() == "rete":
... DEBUG = False
... else:
... DEBUG = True
...
>>> DEBUG
任何人都可以帮助阐明这一点吗?在任何情况下我一定要使用它们吗?
最佳答案
比较发生在 bool 值之前的其他答案是 100% 正确的。作为替代方案(对于您所演示的情况),您也可以将其用作组合条件的一种方式:
if socket.gethostname() in ('bristle', 'rete'):
# Something here that operates under the conditions.
这为您节省了对 socket.gethostname 的单独调用,并且随着项目的增长或您必须授权其他主机,您可以更轻松地添加其他可能的有效值。
关于python - Python 条件中的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740419/