。我猜当时开发人员使用的Python版本是2.3或2.4。基本上源代码是相同的,但我发现如下:
fsa = (fsa and union(fsa, fsa2)) or fsa2
其中
fsa
、fsa2
、union(fsa, fsa2)
都是对象。我不知道它们是如何返回新对象的。有人能给我点提示吗?另外,Python2.7中是否仍然允许使用这些运算符?如果没有,如何更改它以使其在Python2.7中正常工作?谢谢,
最佳答案
Your one line is equivalent of this two ifs:
if fsa:
fsa = union(fsa, fsa2):
if not fsa:
fsa = fsa2
这种使用布尔运算符的方式称为短路。
There is some info in python docs and relevant questions, for example: Does Python support short-circuiting?