Tôi đang cố định nghĩa một lớp có thuộc tính chỉ đọc trong một Python; Tôi đi theo tài liệu Python và đã đưa ra đoạn mã sau:python - tại sao thuộc tính chỉ đọc có thể ghi được?
#!/usr/bin/python
class Test:
def __init__(self, init_str):
self._prop = init_str
@property
def prop(self):
return self._prop
t = Test("Init")
print t.prop
t.prop = "Re-Init"
print t.prop
Bây giờ khi tôi cố gắng để thực thi mã mặc dù tôi đang mong đợi lỗi/ngoại lệ tôi thấy nó nhận được thực hiện bình thường:
$ ./python_prop_test
Init
Re-Init
My Python phiên bản là 2.7.2. Những gì tôi nhìn thấy, là nó mong đợi? Làm thế nào để chắc chắn rằng một tài sản không được giải quyết?
Lớp kiểu cũ không ưu tiên cho bộ mô tả dữ liệu 'thuộc tính'; nó cho phép bạn đổ bóng thuộc tính trong instance dict. – eryksun