python y referencias a métodos
camontuyu
camontuyu en yahoo.es
Mie Feb 14 22:35:35 CET 2007
Todo esto viene por que desde una página web hace una llamada a una
función del tipo (a grandes rasgos)
def set(id, campo, value):
u = Usuario(id)
if campo == 'nombre':
u.nombre = value
elif campo == 'apellidos':
u.apellidos = value
else:
error
de esta forma se me ocurrió definir en un diccionario todos los posibles
campos que se pueden modificar del objeto, de esta forma la función
quedaría algo así.
def set(id, campo, value):
u = Usuario(id)
accion = {'nombre': u.nombre, 'apellidos': u.apellidos}
if accion.has_key(campo):
accion[campo] = value:
else:
error
No se, rayadas de cabeza. Se puede hacer de muchas formas, pero pensando
en esto, me ha surgido la duda si se podría realizar este tipo de
operaciones con los diccionarios.
Saludos
Arnau Sanchez escribió:
> camontuyu escribió:
>
>> Tengo una clase.
>>
>> class A:
>> nombre = ""
>> apellidos = ""
>>
>> ins = A()
>>
>> ahora tengo una diccionario que debería guarda referencia a las
>> variables de clase de la instacia en concreto
>>
>> accion = {'nombre': ins.nombre, 'apellidos': ins.apellidos}
>>
>> para luego hacer:
>>
>> accion['nombre'] = "Pepito Perez"
>> print ins.nombre
>> # Pepito Perez
>
> Uf, ¿no lo estás complicando innecesariamente creando un diccionario y
> una instancia que contienen la misma información? yo me quedaría sólo
> con uno de ellos, en este caso con la instancia. No se recomienda usar
> diccionarios para este tipo de estructuras, donde las claves son fijas
> y conocidas. Duele menos a la vista un registro.campo que
> registro["campo"].
>
> A veces, es cierto, es necesario acceder a la estructura como si ésta
> fuera un diccionario (para extraer todos sus campos, por ejemplo). De
> las muchas alternativas para implementarlo, por su sencillez me
> quedaría con los Structs que propone P.Norvig en sus IAQ sobre Python:
>
> http://norvig.com/python-iaq.html
>
> (pregunta: "Is there a similar shortcut for objects?" y siguientes)
>
> Todo esto dicho sin saber exactamente qué quieres hacer, quizá no te
> sirva.
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
Más información sobre la lista de distribución Python-es