функция в модуле не найдена Python

В одной директории у меня располагаются основной файл Edit.py и модуль с названием control.py. Edit.py - это Tkinter приложение, в него я импортировал модуль control.py import control. В этом модуле находятся функции которые работают переменными из Edit.py.

В коде моего Edit.py я делаю бинд клавиш, вызывающих определенные функции из модуля.

root.bind("<Control-KeyPress-o>", control.main(open()))

В control.py я добавил функцию main в которой находиться функция open, которую я попробовал вызвать, но у меня в терминале вышла ошибка говорящая что функция open не найдена:

  File "Edit.py", line 558, in <module>
    window.bind("<Control-KeyPress-o>", control.main(open()))
NameError: name 'open' is not defined

Вот содержание моего модуля

def main(*args):
    def open():
        with open('./local/session.json', 'r', encoding='utf-8') as f:
            SessionJson = json.load(f)

        class_file.file_open = askopenfilename(defaultextension=".txt", filetypes=[("All Files", "*.*")])

        if class_file.file_open is not None and class_file.file_open != '':
            window.title(os.path.basename(class_file.file_open) + " - Editor")

            Textedit.delete(1.0, END)
            class_file.file = open(class_file.file_open, "r")
            Textedit.insert(1.0, class_file.file.read())
            class_file.file.close()
            check_file_extension()
            # Load a last file to Json
            SessionJson['file'] = str(class_file.file_open)
            with open('./local/session.json','w') as f:
                json.dump(SessionJson ,f)

Под функцией open находятся другие, подобные ней.

Интересно что если добавить в Edit.py эту функцию open, то все выполниться как надо. Может это связано с тем как импортируется мой модуль. Почему выходит эта ошибка, и как ее можно исправить?


Ответы (0 шт):