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