Импорт функции из другого модуля - PullRequest
0 голосов
/ 21 октября 2018

Я хочу импортировать функцию с именем ret() из модуля с именем mainprog в другой модуль с именем windw.

Поэтому я сделал это так в модуле windw:

from mainprog import ret

Это должно работать правильно?Но в модуле mainprog есть бесконечный цикл.Таким образом, даже без вызова импортированной функции она просто загружается вечно, когда я пытаюсь запустить модуль windw.

Итак, я предполагаю, что при импорте запускается весь модуль mainprog?Мне нужна помощь, чтобы избежать этого.

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Вы должны убедиться, что в файле mainprog.py нет ничего, кроме определений функций, констант и __main__ guard .

Если у вас есть что-то еще, определенное так:

do_something()
def ret():
    ...

Обязательно конвертируйте его в:

def ret():
    ...
if __name == '__main__':
    do_something()
0 голосов
/ 21 октября 2018

У вас все хорошо, все, что вам нужно сделать, это заставить цикл не выполняться, если вы не запускаете код сам по себе. Что вам нужно сделать, это добавить

if __name__ == '__main__':
    while True: 

Это заставит вашу программу работатькак и раньше, но позволяют импортировать функции в ваш код

...