Журнал изменений для Python 2.2 (где были представлены классы нового стиля) говорит о функции __ new __
следующее:
__ new __
- статический метод , а не метод класса. Сначала я думал, что это должен быть метод класса, и поэтому добавил примитивclassmethod
. К сожалению, с методами класса вызовы вверх не работают в этом случае, поэтому мне пришлось сделать его статическим методом с явным классом в качестве первого аргумента.
Однако я не могу придумать, почему методы класса не работают для этой цели, и это определенно выглядело бы лучше. Почему __ new __
в итоге не превратился в метод класса? Что имеет в виду Гвидо, когда говорит, что «вызовы вверх не работают в этом случае»?