Tôi muốn tạo một đối tượng động (bên trong một đối tượng khác) trong Python và sau đó thêm các thuộc tính cho nó.
Tôi đã thử:
obj = someobject
obj.a = object()
setattr(obj.a, 'somefield', 'somevalue')
nhưng điều này đã không làm việc.
Có ý kiến gì không?
biên tập:
Tôi đang thiết lập các thuộc tính từ một for
vòng lặp lặp qua danh sách các giá trị, vd
params = ['attr1', 'attr2', 'attr3']
obj = someobject
obj.a = object()
for p in params:
obj.a.p # where p comes from for loop variable
Trong ví dụ trên, chúng tôi sẽ nhận được obj.a.attr1
, obj.a.attr2
, obj.a.attr3
.
Tôi đã sử dụng setattr
hàm vì tôi không biết cách thực hiện obj.a.NAME
từ một for
vòng lặp.
Làm cách nào để đặt thuộc tính dựa trên giá trị p
trong ví dụ trên?
a = object()
và bạn cần obj.a = object()
. Một lần nữa tôi đang nói về ví dụ, trong mã thực tế của bạn, một đối tượng bên trong một đối tượng có thể hữu ích.