Hãy nói rằng tôi có lớp sauMột cách gọn gàng mở rộng một thuộc tính lớp trong lớp con
class Parent(object):
Options = {
'option1': 'value1',
'option2': 'value2'
}
Và một lớp con gọi là Child
class Child(Parent):
Options = Parent.Options.copy()
Options.update({
'option2': 'value2',
'option3': 'value3'
})
Tôi muốn để có thể ghi đè lên hoặc thêm tùy chọn trong lớp trẻ em. Giải pháp tôi đang sử dụng hoạt động. Nhưng tôi chắc chắn có một cách tốt hơn để làm điều đó.
EDIT
Tôi không muốn thêm các tùy chọn như lớp thuộc tính bởi vì tôi có các thuộc tính lớp khác mà không phải là lựa chọn và tôi muốn giữ tất cả các tùy chọn ở một nơi. Đây chỉ là một ví dụ đơn giản, mã thực tế phức tạp hơn thế.
Tại sao không xuất xưởng logic copy/cập nhật trong một phương thức của lớp cha mẹ? Nếu bạn đặt nó trong '__init__' và luôn gọi' super() .__ init __() 'ở cuối lớp con' __init__ 'như bạn đang nghĩ, nó sẽ hoạt động. – asmeurer