Переопределив классовый метод <code>__new__</code>, можно контролироватьуправлять процесспроцессом создания экземпляра. Этот метод вызывается до метода <code>__init__</code> и должен вернуть новый экземпляр, либо <code>None</code> (в последнем случае будет вызван <code>__new__</code> родительского класса). Метод <code>__new__</code> используется для управления созданием неизменчивых (immutable) объектов, управления созданием объектов в случаях, когда <code>__init__</code> не вызывается, например, при десериализации (unpickle). Следующий код демонстрирует один из вариантов реализации [[Одиночка (шаблон проектирования)|шаблона Одиночка]]: