2010-07-13 12 views
5

Esiste un analogo di setattr() che consente di aggiungere una proprietà elenco arbitrario di un oggetto classe istanziato? In caso contrario, c'è un modo consigliato per farlo?Sintassi Pythonic per aggiungere una proprietà elenco oggetto classe arbitrario

Questa è una versione banalizzata di quello che sto facendo attualmente:

foo = SomeClass() 
... 
attr = "names" 
value = "Eric" 
values = getattr(foo, attr) 
values.append(value) 
setattr(foo, attr, values) 

Questo sembra goffo e inefficiente.

Modifica: questo presuppone che foo.names (o qualunque valore arbitrario possa essere assegnato alla variabile attr) sia in realtà una lista.

risposta

12

Il setattr chiamata è ridondante, sefoo.names è davvero una lista (se si tratta di qualcosa di diverso, la prego di chiarire?). getattr(foo, attr).append(value) è tutto ciò di cui hai bisogno.

+0

Naturalmente! Grazie. – heydenberk

+0

@heydenberk, prego! –

Problemi correlati