J’ai lu certains code source et dans plusieurs endroits, j’ai vu l’utilisation de `` . Ce que cela signifie exactement ? Quel est son usage ?
Réponses
Trop de publicités?L' assert
déclaration/fonction existe dans la plupart des tous les autre langage de programmation. Lorsque vous faites...
assert a_condition
... vous dites que le programme de test de condition, et de déclencher une erreur si la condition est fausse.
En Python, c'est à peu près équivalent à ceci:
if not condition:
raise AssertionError()
Essayez-la dans le Python shell:
>>> assert True
>>> assert False
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
Les Assertions peuvent inclure une option de message, et vous pouvez les désactiver lorsque vous avez terminé de débogage. Voir ici pour la documentation pertinente.
Comme d'autres réponses ont noté, assert
est similaire à lancer une exception si une condition donnée n'est pas vrai. Une différence importante est que l'assertion des états ignoré si vous compilez votre code avec l'option d'optimisation. La documentation dit qu' assert expression
peut mieux être décrit comme étant l'équivalent de
if __debug__:
if not expression: raise AssertionError
Cela peut être utile si vous avez envie de tester votre code, puis relâchez une version optimisée lorsque vous êtes heureux qu'aucun de vos affirmation cas de l'échec lorsque l'optimisation est sur, l' __debug__
variable devient Faux et les conditions à éviter d'être évalué. Cette fonction permet également de vous attraper si vous êtes en s'appuyant sur l'affirme et ne réalisent pas qu'ils ont disparu.
D'autres ont déjà donné des liens vers de la documentation.
Vous pouvez essayer la procédure suivante dans un shell interactif:
>>> assert( 5 > 2 )
>>> assert( 2 > 5 )
Traceback (most recent call last):
File "<string>", line 1, in <fragment>
builtins.AssertionError:
Le premier essai ne fait rien, alors que le second élève et d'exception. C'est le premier indice: les assertions est utile de vérifier que les conditions que doit être vrai dans une position donnée de votre code (généralement, le début (conditions préalables) et la fin d'une fonction (postconditions)).
les assertions sont en réalité très liés à la programmation par contrat, ce qui est très utile pour la pratique du génie: