Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Зачем нужен __new__ в Python и каково его практическое применение?

Программирование+4
Анонимный вопрос
  ·   · 4,5 K
Openstack DevOps and IBM/Informix Certified DBA...  · 24 мая 2022
Когда вы создаете экземпляр класса, Python сначала вызывает метод new() для создания объекта, 
а затем вызывает метод init() для инициализации атрибутов объекта.
new() — это статический метод класса объекта. Он имеет следующую запись:
object.new(class, *args, **kwargs)
==========================================
Первый аргумент метода new — это класс нового объекта, который вы хотите создать.
Параметры *args и **kwargs должны совпадать с параметрами init() класса. Однако метод new() их использует.
Метод new() должен возвращать новый объект класса. Но это не обязательно.
Когда вы определяете новый класс, этот класс неявно наследуется от класса объекта. 
Это означает, что вы можете переопределить статический метод new и сделать что-то до и после создания нового экземпляра класса.
Чтобы создать объект класса, вы вызываете метод super().new().
Технически вы можете вызвать метод object.new() для создания объекта вручную. 
Однако после этого вам нужно вручную вызвать init().  Python не будет вызывать  метод init() автоматически, если вы явно создаете новый объект с помощью метода object.new().
===========================================
Последовательность, в которой Python вызывает методы new и init,  когда вы создаете новый объект, вызывая класс.
Далее вопрос и Пайтон код подробно изложены  в блоге  
На основании https://www.pythontutorial.net/
Представитель хостинг-провайдера Eternalhost...  · 24 мая 2022
Зачем нужен __new__ в Python Когда вы создаете экземпляр класса, Python сначала вызывает метод __new() для создания объекта, а затем вызывает метод init() для инициализации атрибутов объекта. new() — это статический метод... Читать далее
Просто о настройках и администрировании сайта в нашем блоге.Перейти на eternalhost.net/blog
В литературе и нашей, и за рубежом используется термин - паттерн синглтон, вместо одноэлементного шаблона, если... Читать дальше
Я программист в компании - senior  · 24 мая 2022
new() предназначен главным образом для того, чтобы позволить подклассам неизменяемых типов (например, int, str или tuple) настраивать создание экземпляра. Он также обычно переопределяется в пользовательских метаклассах, чтобы... Читать далее
1 эксперт согласен