Dictionary-Keys zu Bezeichnern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Malachite
User
Beiträge: 34
Registriert: Sonntag 24. Juni 2012, 13:43
Wohnort: Berlin

Moin,

ich möchte alle Werte eines Dictionarys Eigenschaften eines Objekts zuweisen, die den gleichen Namen haben wie die Schlüssel des jeweiligen Wertes. Zurzeit habe ich das mit exec() gelöst:

Code: Alles auswählen

class Example:
    def __init__(self, **properties):
        for key, val in properties.items():
            exec('self.%s = %s' % (key, ascii(val)))
Imho ist das aber weder elegant noch lesbar. Geht das besser?
deets

Autsch. Da gibt's diverse Moeglichkeiten. Die einfachste ist das hier:

Code: Alles auswählen

class Foo(object):

    def __init__(self, **kwargs):
          self.__dict__.update(kwargs)
Alternativ kannst du auch setattr verwenden.

Als Faustregel gilt: NIEMALS exec benutzen... Es gibt eigentlich immer einen Weg drumrum.
Antworten