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