Làm cách nào để bạn đặt/nhận giá trị thuộc tính của t
được cung cấp bởi x
.Cách truy cập thuộc tính đối tượng cho trước chuỗi tương ứng với tên thuộc tính đó
class test():
attr1 = int
attr2 = int
t = test()
x = "attr1"
Làm cách nào để bạn đặt/nhận giá trị thuộc tính của t
được cung cấp bởi x
.Cách truy cập thuộc tính đối tượng cho trước chuỗi tương ứng với tên thuộc tính đó
class test():
attr1 = int
attr2 = int
t = test()
x = "attr1"
Có được tích hợp chức năng gọi getattr
và setattr
getattr(object, attrname)
setattr(object, attrname, value)
Trong trường hợp này
x = getattr(t, "attr1")
setattr(t, 'attr1', 21)
Ngoài ra còn có delattr để xóa các thuộc tính, nhưng điều này hiếm khi được sử dụng. –
và hasattr để thử nghiệm có hay không một đối tượng có một attr cụ thể mặc dù trong trường hợp đó bằng cách sử dụng ba hình thức đối số getattr (đối tượng, attrname, mặc định) thường là tốt hơn. – Duncan
Đây chắc chắn là cách duyên dáng! – larry
Có trăn được xây dựng trong các chức năng setattr và getattr. Có thể dùng để thiết lập và lấy thuộc tính của một lớp.
Một ví dụ ngắn gọn:
>>> 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
trùng lặp: http://stackoverflow.com/questions/1887509/access-to-class-attributes-by-using-a-variable-in-python –
có thể trùng lặp của [Python: truy cập thuộc tính lớp từ chuỗi] (http://stackoverflow.com/questions/1167398/python-access-class-property-from-string) – fejese