[Python-de] strings zu attributnamen ?

Dinu C. Gherman gherman at darwin.in-berlin.de
Sat Sep 11 12:01:17 EDT 1999


Sascha Matzke wrote:
> 

> Ich habe einen string x="hallo". Nun moechte ich gern in einer Klasse
> ein beliebiges Attribut abhaengig von diesem string setzen... Also
> etwas in der Art self."x" wird zu self.hallo...
> 
> Geht das irgendwie ??

Nicht ganz klar, was Du meinst... So etwas vielleicht:

>>> print setattr.__doc__
setattr(object, name, value)

Set a named attribute on an object; 
setattr(x, 'y', v) is equivalent to ``x.y = v''.
>>>
>>> x = 'Hallo'
>>> class C: pass
>>> c = C()
>>> setattr(c, 'dumdideldei', x)
>>> c.dumdideldei
'Hallo'

oder so?

>>> setattr(c, x, 'dumdideldum')
>>> c.Hallo
dumdideldum

Beides setzt ein Attribut in einem *Objekt* einer Klasse C.
Ich nehme an, das ist, was Du willst. Du kannst setattr auch
direkt mit C statt c aufrufen, was nicht ganz dasselbe ist.

Dinu

-- 
Dinu C. Gherman

................................................................
"An average of more than 15 % of adults in 12 industrialized 
countries are functionally illiterate; in Ireland, the United 
Kingdom and the United States, the rates are over 20 %."

  (The State of the World's Children 1999,
   UNICEF, http://www.unicef.org/sowc99)





More information about the Python-de mailing list