python / python/cpython

Subtle error in `getattr_hook` example in the Descriptor Guide

Đang mở
#126,090 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

docs
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ả

Documentation

The example below, from the Descriptor Guide, does not seem to reflect the behaviour of the actual implementation.

https://github.com/python/cpython/blob/ced2691de4c9500ac9a5ccded00741a5fc2d9d2c/Doc/howto/descriptor.rst?plain=1#L733-L740

Unless I'm mistaken, line 736 return obj.__getattribute__(name) should actually read return type(obj).__getattribute__(obj, name).

It's easy to miss when thinking of class instances, but the issue becomes more evident when the example is applied to an attribute lookup on a class object instead. The example would call the __getattribute__ method of the class itself, while the actual implementation calls __getattribute__ on the metaclass (not to mention that in this case the call in the example would fail, due to a missing argument, as it is calling a plain function, rather than a bound method).

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Mở Doc/howto/descriptor.rst quanh các dòng 733-740 và so sánh ví dụ getattr_hook với hành vi triển khai được mô tả trong issue, đặc biệt đối với việc tra cứu thuộc tính của đối tượng lớp. Nếu xác nhận có sự không nhất quán, hãy cập nhật biểu thức giá trị trả về được ghi trong tài liệu và xác minh rằng hướng dẫn khớp với phần triển khai.

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
documentation
Loại issue
Tài liệu
Độ khó
1/5
Thời gian dự kiến
Dưới một giờ
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Đặc tả rõ ràng
Mức phù hợp với người mới
48/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.