我遇到了术语"协议驱动的断路操作符"在PEP 532,并且无法找到它究竟意味着什么。
你能解释这句话的含义吗?
答案 0 :(得分:1)
在这种情况下,"协议"是一个API。并且"断路"可能更容易理解另一个短语,"短路。"如:
if text is None or not text.startswith("lorem"):
raise RuntimeError("text should exist and start with 'lorem'")
如果text.startswith()
不是text
,None
只是有效代码,则上述代码"短路"使用or
运算符,如果左侧为真,则无需评估右手参数。同样,如果左侧为假,则and
运算符会短路(因为结果必须为假)。
因此,这个PEP的目的是增强构建表达式的设施,这些表达式可以用更精细的方式进行短路。