Основна різниця між __init__() та __new__() полягає в їхній функціональності. __new__() використовується для створення нового екземпляра класу, тоді як __init__() викликається для ініціалізації цього об'єкта.
class MyClass:
def __new__(cls):
# створення нового об'єкта
return super(MyClass, cls).__new__(cls)
def __init__(self):
# ініціалізація об'єкта
self.value = 10