-2
Q
短路的结果
A
回答
2
您似乎正在阅读(约)PEP 532 - A circuit breaking operator and protocol,建议让左手操作数访问短路操作。
Python目前没有办法挂钩or
和and
布尔运算符;这些运算符短路之处在于,如果可以从左侧操作数确定结果,则不需要评估右侧操作数表达式。
例如,下面的表达式将不会产生异常:
count = 0
average = count and total/count
即使右手表达将提高ZeroDivisionError
异常,如果运行。
PEP提出了一个新操作员else
操作员,该操作员可以让左侧的操作员根据操作结果truth-value来处理操作的结果。因此,在表达
lefthand else righthand
的lefthand
类视bool(lefthand)
值被给定接入要么lefthand
或righthand
。
您没有给出您找到的语句的完整上下文,但PEP 532是定义__else__
和__then__
方法的提议;当lefthand
被认为是真正的type(lefthand).__then__(lefthand)
叫,否则type(lefthand).__else__(righthand)
被称为:
result = type(lefthand).__then__(lefthand) if lefthand else type(lefthand).__else__(lefthand, righthand)
您可以实现这些则作为
class CircuitBreaker:
def __bool__(self):
# am I true or false?
return someboolean
def __then__(self):
# I'm true, so return something here
return self
def __else__(self, righthand):
# I'm false, the righthand has been evaluated and pass ed in
return righthand
注意PEP 532 仍在讨论,它可能是这个提案从未实施。
相关问题
- 1. 不同的结果,在短短的mysql
- 2. T-SQL递归CTE,需要长的路径缩短结果
- 3. 短路并给出不正确的结果?
- 4. get solr autosuggest结果短语
- 5. Android短信发送结果
- 6. PHP - 替代Base64的更短的结果?
- 7. Boost :: Spirit结果的短语_parse
- 8. 没有结果的MySQL最短查询
- 9. 列表(),如果和短路评价
- 10. CSV代通过阶级赋予结果在短短的一列
- 11. 更短的路线路线
- 12. Cypher查询找到最短的部分路径并聚合结果
- 13. 获得最短结果first elasticsearch
- 14. SOLR短语查询未返回结果
- 15. youtube zend api:结果短于n分钟
- 16. JSP下拉菜单,缩短结果
- 17. 加密HMAC结果在C短于C#
- 18. Kibana:请短语短期产量没有结果
- 19. Laravel PUT路由结果404
- 20. ASP.net路由结果404
- 21. MySQL短路或
- 22. 短路递归
- 23. 最短路径
- 24. 最短路径
- 25. Haskell短路(&&)
- 26. 骑士的最短路径图的数据结构和算法
- 27. 如果包含短语,MySQL MySQL省略结果
- 28. 显示基于URL路径的结果
- 29. MVC中不一致的路由结果
- 30. 路线与查询结果的Rails
继续阅读你正在阅读的PEP(你没有链接)。 – user2357112
你是什么意思的“从这里”? – melpomene
http://www.computerhope.com/jargon/s/shortcircuit-operator.htm –