Pertanyaan Cara mengakses atribut objek diberi string yang sesuai dengan nama atribut itu


Bagaimana Anda mengatur / mendapatkan nilai atribut t diberikan oleh x.

class test():
   attr1 = int
   attr2 = int

t = test()
x = "attr1"

75
2018-04-10 07:22


asal


Jawaban:


Ada fungsi built-in yang disebut getattr dan setattr

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

Pada kasus ini

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

167
2018-04-10 07:25



Ada python yang dibangun pada fungsi setattr dan getattr. Yang dapat digunakan untuk mengatur dan mendapatkan atribut suatu kelas.

Contoh singkat:

>>> 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