Я только что столкнулся с дескрипторами на Python, и получил идеи о протоколе дескриптора на "__get__, __set__, __delete__", и он действительно отлично справился с методами упаковки.
Однако в протокол существуют другие правила:
Дескрипторы данных и данных, отличные от данных, различаются тем, как вычисляются переопределения в отношении записей в словаре экземпляров. Если словарь экземпляров имеет запись с тем же именем, что и дескриптор данных, дескриптор данных имеет приоритет. Если словарь экземпляров имеет запись с тем же именем, что и дескриптор не данных, запись словаря имеет приоритет.
Я не понимаю, не так ли просто искать классический способ (словарь словаря → словарь словаря → словарь базового класса)?
И если реализовать этот способ, дескрипторы данных могут храниться экземплярами, и сам дескриптор не должен содержать weakrefdict
для хранения значений для разных экземпляров владельца.
Зачем добавлять дескрипторы в цепочку поиска? И почему дескриптор данных помещен в самом начале?