У меня есть модуль, и я хочу добавить его функцию к функциям i python magi c. Я создал файл расширения и загрузил его в файл конфигурации расширения i python. Класс функции, которую я добавил как функция magi c, является одноэлементным классом, и я создаю его экземпляр в main при запуске программы. Проблема в том, что когда я вызываю созданную функцию magi c в моей консоли i python, i python создает новый экземпляр этого класса (здесь Handler). Я хочу иметь только один объект этого класса. Вот мой код:
My расширение : ___ ext.py
import Run
def load_ipython_extension(ipython):
ipython.register_magic_function(Run.openFile, 'line')
My run file: ___ Run.py
from Controller.Handler import Handler
if __name__ == '__main__':
handler = Handler()
def openFile(file=None, err_type=0):
Handler.getInstance().openFile(file, err_type)
Затем я запускаю % openFile 'data.jpg' в консоли i python qt , он создает другой экземпляр (это означает, что Handler .__ instance is None при вызове во второй раз) и открывается другая программа.
Может ли кто-нибудь помочь мне иметь только один экземпляр объекта-обработчика?
Спасибо