Ответ 1
Я пытался найти правильный язык, чтобы поддержать, почему это поведение так оно и есть, чтобы не дать вам "потому что это просто" ответ... Но, похоже, этот вопрос задан больше, чем один раз и что он сводится к поведению super()
. Вы можете увидеть дискуссию 2010 года об этом точном поведении здесь: http://mail.python.org/pipermail/python-dev/2010-April/099672.html
В конечном счете, это действительно сводится к вызовам super(), позволяющим напрямую обращаться к getters, а не к сеттерам. Доступ к сеттерам можно получить через fset()
или __set__()
. Вероятно, это проще всего объяснить, поскольку функция super() просто не поддерживает его ". Он будет разрешать функциональные возможности операции" получить ", а не сеттер в назначении левой руки, в" заданной" операции (следовательно, вызов метода fset()
). Как вы можете видеть с даты этой дискуссии, очевидно, что это произошло с момента введения super()
.
Возможно, у кого-то есть более конкретная техническая причина, но, честно говоря, я не уверен, что это даже имеет значение. Если его не поддерживать, это довольно хорошая причина.