2010-06-16 4 views
1

Possible en double:
How do you programmatically set an attribute in Python?Comment puis-je définir une propriété en python utilisant son nom de chaîne

Hey, voici une question stupide: comment puis-je définir une propriété d'objet donné son nom dans une chaîne. J'ai un dictionnaire étant passé à moi et je souhaite transférer ses valeurs dans les propriétés éponymes en utilisant le code comme ceci:

for entry in src_dict: 
      if entry.startswith('can_'): 
       tgt_obj[entry] = src_dict_profile[entry] 

Je suis encore un peu d'un noob avec Python afin apprécierait un peu d'aide. - dave.

+0

double: http: //stackoverflow.com/questi ons/285061/how-do-you-program-set-a-attribute-in-python –

Répondre

11
setattr(some_object, 'some_attribute', 42); 
+0

S'il vous plaît, pas de point-virgule. :-RÉ – smitelli

6

On dirait que vous recherchez setattr.

Exemple:

for entry in src_dict: 
     if entry.startswith('can_'): 
      setattr(tgt_obj, entry, src_dict_profile[entry]) 
0

sur des objets qui ont "dict" propriété

if "__dict__" in dir(obj): 

vous pouvez faire des choses amusantes comme:

obj.__dict__.update(src_dict) 
Questions connexes