Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 22, 2008 20:43:26

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

как сделать для функции второй __init__ ?

С новомодными классами:

>>> 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 объекты создает, когда их из базы грузит



Отредактировано (Окт. 22, 2008 20:44:13)

Офлайн

#2 Ноя. 11, 2008 16:53:54

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

как сделать для функции второй __init__ ?

Пригодилось, блин :-). Впервые в жизни такая вещь понадобилась.
Использовал свой вариант (со старым типом объектов) и поставил raise на __init__ (с очень вежливой просьбой пойти на…) по примеру Анрея.

..bw



Офлайн

#3 Ноя. 11, 2008 22:42:17

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

как сделать для функции второй __init__ ?

Стас
повеселил.



Офлайн

#4 Ноя. 12, 2008 07:52:14

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

как сделать для функции второй __init__ ?

Стас, перечитай тему сначала. Возможно, несколько раз.

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version