Как изнутри определить, был ли модуль / файл Python импортирован или вызван автономно? - PullRequest
0 голосов
/ 03 мая 2019

Я хотел бы структурировать некоторый код Python таким образом, чтобы я мог либо вызывать его из командной строки, либо импортировать его как пакет из другой программы.

Если я импортирую его, я вызову его, скажем,через функцию main() с некоторыми параметрами.Если он выполняется напрямую, я вызову main() с параметрами по умолчанию в конце файла.

Как изнутри модуля определить, следует ли вызывать main() с параметрами по умолчанию или нет?

В качестве альтернативы, когда я звоню imp.importlib.import_module(), есть ли способ передать опции в модуль (скажем, через его глобальные переменные)?

1 Ответ

2 голосов
/ 03 мая 2019

Вы можете проверить, запускается ли файл напрямую с помощью:

if __name__ == '__main__':
    print("I am run as a script!")
else:
    print("I am being imported")
...