¿Hay algún patrón de diseño o forma limpia para hacer la verificación de parámetros de función/método (contra los valores permitidos)?¿Cuál es una forma (o patrón) limpia para hacer la verificación de parámetros de funciones?
Actualmente, muchos de los códigos iniciales en mis funciones consisten en estos controles de parámetros (cadenas vacías, caracteres inválidos, identificador existente, ...) y, si es necesario, es un poco feo y ofusca el código 'real' de la función. Por lo general, mi código es algo como esto:
def my_function(p1,p2,p3,p4):
#check parameters
if p1 == ''
raise InvalidArgError('p1 can not be empty')
if p1 not in valid_list:
raise InvalidArgError('p1 does not exist')
if p2 < 0:
raise InvalidArgError('p2 can not be negative')
...
#finally do something
p = p2+p3
Para la solución, estoy pensando en la línea de decorators en Python.
Estoy usando Python, aunque supongo que una buena solución sería independiente del lenguaje.
No estoy familiarizado con el código de conractos. ¿Tienes algún buen enlace inicial? (Los resultados devueltos por google parecían un nivel demasiado alto a primera vista) – Rabarberski