Я пытаюсь создать (не совсем восстановить) объект, атрибуты которого сохранены в базе данных. Поэтому я не хочу вызывать __ init __
. Это желание, по-видимому, согласуется с предполагаемым использованием Гвидо для __ new __
. Я не понимаю, почему не вызывается __ init __
.
Возьмите следующий фрагмент, например, он возвращает экземпляр класса User без вызова __ init __
.
class User(object):
def __init__(self, arg1, arg2):
raise Exception
user = User.__new__(User)
print user
Это точное поведение хочу. Однако мой вопрос заключается в том, что я не понимаю, почему?
Согласно документации python __ init __
должен вызываться, когда __ new __
"возвращает экземпляр cls. "
Так почему же __ init __
даже не вызывается, хотя __ new __
возвращает экземпляр класса?