Как создать оболочку ленивой инициализации (прокси) в Python?Python

Программы на Python
Ответить
Гость
 Как создать оболочку ленивой инициализации (прокси) в Python?

Сообщение Гость »


Учитывая дорогостоящую инициализацию объекта и двух потребителей:

класс A: защита __init__(): время.сон(42) self.foo = 1 защита func1 (объект: A): проходить защита func2 (объект: A): печать(A.foo) Как создать оболочку, которая бы задерживала инициализацию A до тех пор, пока не будет получен доступ к любому из его полей?

прокси = оболочка(A) func1(proxy) # выполняется немедленно func2(proxy) # вызывает инициализацию объекта и ждет 42 секунды. Другими словами, как отложить инициализацию объекта до тех пор, пока к любому из его свойств не будет получен доступ обычным способом a.foo или на худой конец a.__dict__['foo'].
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»