tôi chỉ cần bỏ ra quá nhiều thời gian vào một lỗi như sau:Python: Lớp học có thể cấm khách hàng thiết lập thuộc tính mới không?
>>> class Odp():
def __init__(self):
self.foo = "bar"
>>> o = Odp()
>>> o.raw_foo = 3 # oops - meant o.foo
Tôi có một lớp học với một thuộc tính. Tôi đã cố gắng để thiết lập nó, và tự hỏi tại sao nó không có hiệu lực. Sau đó, tôi quay trở lại định nghĩa lớp gốc, và thấy rằng thuộc tính được đặt tên một cái gì đó hơi khác. Do đó, tôi đã tạo/thiết lập thuộc tính mới thay vì thuộc tính có nghĩa là.
Trước hết, đây không phải là chính xác loại lỗi mà ngôn ngữ gõ tĩnh được cho là sẽ ngăn không? Trong trường hợp này, lợi thế của gõ động là gì?
Thứ hai, có cách nào tôi có thể cấm điều này khi xác định Odp
và do đó đã lưu bản thân sự cố không?
Có thể trùng lặp: http://stackoverflow.com/questions/3079306/how-to-protect-againt-typos-when-setting-value-for-class-members – detly