Как импортировать функцию с помощью Python - PullRequest
2 голосов
/ 07 августа 2010

Я разрабатываю приложение Python для GAE.

Приложение состоит из набора классов и функций, которые в настоящий момент находятся в одном файле main.py.

Приложение работает без проблем.

Теперь я хочу реорганизовать приложение и передать все классы на аутсорсинг. Каждый класс должен быть в ее собственном файле. Файлы должны быть расположены в следующих каталогах:

main.py
/directory1/class1.py
/directory1/class2.py
/directory2/class1.py

Моя проблема в том, что внутри этих внешних классов я не могу использовать функции main.py.

Я пробовал это в файлах классов.

from main import name_of_function

Но компилятор говорит

    from main import name_of_function
ImportError: cannot import name name_of_function

Что я не так сделал?

Название функции - логин. Может быть, это вызывает проблему?

Ответы [ 2 ]

2 голосов
/ 07 августа 2010

Попробуйте переместить дополнительные функции из main.py в отдельный файл.

main.py
library.py # contains login() and other functions from main
/directory1/class1.py
/directory1/class2.py
/directory2/class1.py
0 голосов
/ 07 августа 2010

Иногда полезно оставить классы в одном и том же модуле не разделенными без цели, если они принадлежат друг другу.

Проблема использования функции из main - это признак того, что вам следует выполнить рефакторинг одного модуля, скажем, common_utils.pyфункции и отделить его от основного.Вы можете импортировать это в свои модули, которые их используют.Не думайте, что классы думают только о сценарии использования.

Если бы вы могли дать псевдокод логики вашей программы, мы могли бы вместе лучше проверить рефакторинг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...