2010-07-13 39 views
5

Có tương tự setattr() cho phép chắp thêm thuộc tính danh sách tùy ý của một đối tượng lớp đã được khởi tạo không? Nếu không, có cách nào được khuyến nghị làm như vậy không?Cú pháp Pythonic để gắn thêm một thuộc tính danh sách đối tượng lớp tùy ý

Đây là một phiên bản tầm thường về những gì tôi đang thực hiện:

foo = SomeClass() 
... 
attr = "names" 
value = "Eric" 
values = getattr(foo, attr) 
values.append(value) 
setattr(foo, attr, values) 

Điều này có vẻ vụng về và kém hiệu quả.

Chỉnh sửa: điều này giả định rằng foo.names (hoặc bất kỳ giá trị tùy ý nào có thể được gán cho biến attr) thực tế là một danh sách.

Trả lời

12

Cuộc gọi setattr là dự phòng, nếufoo.names thực sự là danh sách (nếu đó là nội dung khác, bạn có thể làm rõ không?). getattr(foo, attr).append(value) là tất cả những gì bạn cần.

+0

Tất nhiên! Cảm ơn bạn. – heydenberk

+0

@heydenberk, bạn được chào đón! –

Các vấn đề liên quan