# -*- coding: utf-8 -*- import win32com.client # Пробуем описать базовый класс # Описываем класс, который содержит объект lotus_object, который удаляется __del__ class CustonLotusObject: def __init__(self): self.lotus_object = None def __del__(self): del lotus_object # Сессия class LotusSession(CustonLotusObject): '''Установка соединение с lotus domino''' def __init__(self): CustonLotusObject.__init__(self) self.lotus_object = win32com.client.Dispatch('Lotus.NotesSession') # Инициализации соединение def set_initialize_session(self, password): '''инициализация сессии''' self.lotus_object.Initialize(password) def get_environment_string(self, name): return self.lotus_object.GetEnvironmentString(name) # Сервер соединение def get_server(self, name_db): '''получить сервер''' return self.get_environment_string('SRV' + name_db) # Путь базы данных def get_path(self, name_db): '''путь к базе''' return self.get_environment_string('DB' + name_db) # База данных class LotusDataBase(CustonLotusObject): '''Соединение базы данных''' def __init__(self, session, server, path): CustonLotusObject.__init__(self) self.lotus_object = session.lotus_object.GetDatabase( server, path, False) self.session = session def ReplicaID(self): return self.lotus_object.ReplicaID # узел данных class LotusItem: pass # Доступ к данным class LotusDocument: pass # Коллекция документов class LotusDocumentCollection(CustonLotusObject): def __init__(self, database): CustonLotusObject.__init__(self) self.database = database # Заросить список всех объетов def set_all_select_document_collection(self): self.lotus_object = database.lotus_object.AllDocuments # Представление данных class LotusView: pass notesPass = "124135" s = LotusSession() s.set_initialize_session(notesPass) server = s.get_server('organization') path = s.get_path('Organization') db = LotusDataBase(s, server, path) print('сервер: ', server) print('путь: ', path) print('replica_id: ', db.ReplicaID()) del db del s
после
del db
del s
генерируется ошибка
Exception ignored in: <function CustonLotusObject.__del__ at 0x015CD1D8>
Traceback (most recent call last):
File “x-wingide-python-shell

UnboundLocalError: local variable ‘lotus_object’ referenced before assignment
Exception ignored in: <function CustonLotusObject.__del__ at 0x015CD1D8>
Traceback (most recent call last):
File “x-wingide-python-shell

UnboundLocalError: local variable ‘lotus_object’ referenced before assignment