Je tente d'écrire des blocs de code d'exception dans mon code Python afin de m'assurer que les paramètres passés à la fonction remplissent les conditions appropriées (ie rendre les paramètres obligatoires, vérifier les paramètres, établir les limites valeurs pour les paramètres, etc ...). Je comprends de manière satisfaisante comment manually raise exceptions ainsi que handling them.Python - Vérification des paramètres avec Exception Raising
from numbers import Number
def foo(self, param1 = None, param2 = 0.0, param3 = 1.0):
if (param1 == None):
raise ValueError('This parameter is mandatory')
elif (not isinstance(param2, Number)):
raise ValueError('This parameter must be a valid Numerical value')
elif (param3 <= 0.0):
raise ValueError('This parameter must be a Positive Number')
...
Ceci est un moyen de paramètre acceptable (essayé et vrai) vérifier en Python, mais je dois me demander: Depuis Python ne dispose pas d'une façon d'écrire commutateur-cas en plus if-then-ELSE, est y at-il une manière plus efficace ou appropriée d'effectuer cette tâche? Ou est la mise en œuvre de longues étendues d'instructions if-then-else ma seule option?
Vous pouvez créer un décorateur de fonction, quelque chose comme '@check (types = [None, None, flotteur, flotteur], ranges = [None, None, (0.0,10.0), None])' (ici , 'None' signifiant" aucune restriction ") –
Peut-être que cela va vous aider: http://stackoverflow.com/questions/15299878/how-to-use-python-decorators-to-check-function-arguments –
Croyez-le ou non, je pense que l'utilisation d'affirmations assert pourrait être plus bénéfique pour moi que l'utilisation d'instructions if-elif. J'ai en fait eu l'idée à la fois d'examiner le lien posté dans les commentaires ainsi que le code utilisé pour le décorateur. Alors merci, les gars! –