busqueda por cualquier atributo
Manuel
frame_256 en yahoo.com.ar
Mie Feb 16 10:01:11 CET 2005
Hmm, interesante la validación por medio de conjuntos, voy a chequearlo.
> Una solución alternativa a la que te ha dado Josef sería validar los
> atributos que te llegan, pero que obligaría a pasarlos siempre por nombre:
>
> class Cliente:
> def __init__(self,**atrs):
> attrs_obligatorios=("nom","ape","ID")
> if not set(attrs)>set(attrs_obligatorios):
> raise KeyError
> self.atrs = atrs
>
>
>
> ...y si lo quieres más elegante, se podría utilizar decoradores para
> validar "contratos" en el paso de argumentos:
>
>
> def val_attrs( attrs_obligatorios ):
> def deco(func):
> def wrapper(self,**attrs):
> sdiff=set(attrs_obligatorios)-set(attrs.keys())
> if sdiff:
> raise KeyError,list(sdiff)
> return func(self,**attrs)
> return wrapper
> return deco
>
>
> class Cliente:
> @val_attrs( ("nom","ape","ID") )
> def __init__(self,**atrs):
> self.atrs = atrs
> ...
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es