busqueda por cualquier atributo
Chema Cortes
py en ls-l.org
Mie Feb 16 14:20:53 CET 2005
Manuel escribió:
> 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
Cuida, que hay un pequeño error. Debería ser:
if not set(attrs.keys())>set(attrs_obligatorios):
raise KeyError
También puede que se hubiera entendido mejor de la siguiente forma, pero
personalmente lo veo más lioso:
class Cliente:
def __init__(self,**atrs):
attrs_obligatorios=("nom","ape","ID")
if not set(attrs.keys()).issuperset(attrs_obligatorios):
raise KeyError
self.atrs = atrs
Más información sobre la lista de distribución Python-es