Frage Wie auf die Objektattribut-gegebene Zeichenfolge zugegriffen wird, die dem Namen dieses Attributs entspricht


Wie setzen / erhalten Sie die Werte von Attributen von t gegeben von x.

class test():
   attr1 = int
   attr2 = int

t = test()
x = "attr1"

75
2018-04-10 07:22


Ursprung


Antworten:


Es gibt eingebaute Funktionen genannt getattr und setattr

getattr(object, attrname)
setattr(object, attrname, value)

In diesem Fall

x = getattr(t, "attr1")
setattr(t, 'attr1', 21)

167
2018-04-10 07:25



Es gibt Python in den Funktionen setattr und getattr. Mit dem kann das Attribut einer Klasse gesetzt und abgerufen werden.

Ein kurzes Beispiel:

>>> from new import  classobj

>>> obj = classobj('Test', (object,), {'attr1': int, 'attr2': int}) # Just created a class

>>> setattr(obj, 'attr1', 10)

>>> setattr(obj, 'attr2', 20)

>>> getattr(obj, 'attr1')
10

>>> getattr(obj, 'attr2')
20

6
2018-04-10 07:34