модуль импорта в файле расширения i python делает новый экземпляр этого модуля - PullRequest
0 голосов
/ 02 марта 2020

У меня есть модуль, и я хочу добавить его функцию к функциям 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 при вызове во второй раз) и открывается другая программа.

Может ли кто-нибудь помочь мне иметь только один экземпляр объекта-обработчика?

Спасибо

...