je me retrouve à écrire le même argument code de vérification tout le temps pour le nombre crissement:arguments dans le code Vérification Python numérique
def myfun(a, b):
if a < 0:
raise ValueError('a cannot be < 0 (was a=%s)' % a)
# more if.. raise exception stuff here ...
return a + b
Y at-il une meilleure façon? On m'a dit de ne pas utiliser 'affirmer' pour ces choses (bien que je ne vois pas le problème, à part de ne pas connaître la valeur de la variable qui a causé l'erreur).
edit: Pour clarifier, les arguments sont généralement juste des nombres et les conditions de vérification d'erreurs peuvent être complexes, non triviales et ne mèneront pas nécessairement à une exception plus tard, mais simplement à un mauvais résultat. (algorithmes instables, solutions dénuées de sens, etc.)
Qui a dit de ne pas utiliser affirmer? Quelle raison ont-ils donné? Pouvez-vous obtenir un devis ou une référence? –
@ S.Lott: parce que assert s'en va avec '__debug__' ou optimisations, et le" affirmer pour le programmeur, les exceptions pour l'utilisateur "mantra. Référence? err .. appelons cela "communication privée" – MarkkS