2016-12-06 2 views

Répondre

1

Dans ce contexte, un "protocole" est une API. Et "circuit breaking" pourrait être plus facilement compris par une autre expression, "court-circuiter". Comme dans:

if text is None or not text.startswith("lorem"): 
    raise RuntimeError("text should exist and start with 'lorem'") 

Depuis text.startswith() est que le code valide si text n'est pas None, le code ci-dessus « circuits courts » à l'aide de l'opérateur or, qui ne prend pas la peine d'évaluer l'argument de la main droite si la gauche est vrai. De même, l'opérateur and court-circuite si la main gauche est fausse (car le résultat doit alors être faux). Le but de ce PEP est donc d'améliorer les possibilités de construire des expressions qui peuvent court-circuiter de manière plus élaborée.

+0

Merci John pour votre bonne réponse. Je pense que dans votre déclaration "Puisque text.startswith() est seulement un code valide si le texte n'est pas None", vous vouliez dire "... si le texte est None" (en supprimant "not")? – Simplicity

+0

@Simplicity: Non, ce que j'ai écrit est correct. Si le texte est None, vous ne pouvez pas opérer dessus. –