最近偶然发现在Python 3.7上运行的一行代码,以前没有见过,由于不知道该怎么搜索,所以在网上也找不到。
其背景类似于下面的内容。
def some_function(some_var: bool = None):
if some_var is None:
some_var = os.environ.get("SOME_ENV_VAR", False) == "true"
后面的双等号在这里有什么作用,为什么要用它?
你可以把这段代码改写成下面的样子,以便更清楚地看到它在做什么。
if some_var is None:
if os.environ.get("SOME_ENV_VAR", False) == "true":
some_var = True
else
some_var = False
这一行。
os.environ.get("SOME_ENV_VAR", False) == "true"
是一个条件检查,然后 some_var
的结果将被分配。True
False
检查。
这里没有什么奇特的语法,只是一个二进制(如 "两个参数")运算符。==
只是一个二进制(如 "两个参数")运算符,就像 +
或 and
.
你可以看到这条线为 a = b == c
就像 a = b + c
将意味着 "计算 b + c
并将其存储在 a
",这意味着 "计算 b == c
并将其存储在 a
即把 True
在 a
如果 b
等于 c
, False
否则,。