AttributeError 'did you mean' suggestions don't appear for properties without a setter
Đang mở
Chưa có ai nhận issue này.
interpreter-core
type-bug
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 35.9k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
Bug report
Bug description:
class A:
@property
def computed_a(self):
return 2
@property
def computed_b(self):
return 3
@computed_b.setter
def computed_b(self, val):
print('set!')
a = A()
a.computed_a = 12 # typo
When running this, I would expect to get AttributeError: ... Did you mean: 'computed_b', but I'm not getting a suggestion. I think it's because the AttributeError that property.__set__ raises doesn't have .obj and .name set.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Tái hiện ví dụ gán thuộc tính đã được báo cáo trên nhánh main của CPython và kiểm tra cách triển khai của property.set cùng với việc xử lý gợi ý AttributeError. Bản sửa hoàn tất khi việc gán cho thuộc tính được tính toán chỉ đọc computed_a tạo ra một AttributeError với gợi ý “Did you mean” phù hợp, mà không thay đổi trường hợp setter.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100