How to access object attributes given a string

Gary Herron gherron at islandtraining.com
Tue Feb 12 15:35:46 EST 2008


Santiago Romero wrote:
>  Hi...
>
>  I'm trying to guess how to access attributes of an existing object
> given the attribute name in a string. I mean:
>
> class Object:
>     self.x = 12
>     self.y = 20
>     self.name = "blah"
>
> def ChangeAttribute( object, attribute, value ):
>   # Insert here the code for object.attribute = value
>   XXXXX
>
>  Allowing this kind of calls:
>
>  ChangeAttribute( object, "x", 200 )
>  ChangeAttribute( object, "name", "my name" )
>
>  Thanks.
>
> PS: I need it for a concrete case in a game scripting language I'm
> writing, so that I can call functions like "CHANGE_PLAYER_VALUES( "x",
> 100 )".
>   
You want getattr and setattr:
    setattr(ob, 'blah', 123)
and
    getattr(ob, 'blah')

Gary Herron




More information about the Python-list mailing list