Найти - Пользователи
Полная версия: как сделать для функции второй __init__ ?
Начало » Python для экспертов » как сделать для функции второй __init__ ?
1 2
Андрей Светлов
С новомодными классами:
>>> class A(object):
... def __init__(self):
... raise RuntimeError('__init__ called')
... @classmethod
... def make_without_init(cls):
... return cls.__new__(cls)
...
>>> a = A()
Traceback (most recent call last):
...
RuntimeError: __init__ called
>>> A.make_without_init()
<__main__.A object at 0x00E7F530>
Так SQLAlchemy объекты создает, когда их из базы грузит
bw
Пригодилось, блин :-). Впервые в жизни такая вещь понадобилась.
Использовал свой вариант (со старым типом объектов) и поставил raise на __init__ (с очень вежливой просьбой пойти на…) по примеру Анрея.

..bw
Александр Кошелев
Стас
повеселил.
bw
Стас, перечитай тему сначала. Возможно, несколько раз.

..bw
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB