Вопрос банальный, но я застопорился на этом моменте.
Есть основной файл, а есть модуль, который содержит одну функцию. Они лежат в одной папке. В основном файле есть вызов функции из модуля.
Работает, если from test_function import abc, но не работает, если import test_function (хочу, чтобы весь последующий код из модуля в дальнейшем импортировался автоматически в основной файл). Я что-то делаю неправильно?
Насколько я знаю, это импортирует все функции? А если нужно импортировать весь код?
Если верить описаниям, это должно происходить при import *имя файла*.
>>> Насколько я знаю, это импортирует все функции? А если нужно импортировать весь код?
Для модулей только функции и классы нужны. Или вы хотите вызвать и исполнение кода, что не в функциях?
Если так, то при импорте происходит исполнение кода модуля, т.е. что не в функциях сразу же исполняется. Обычно, это как раз, не требуется и соответственно этого пытаются избежать таким способом:
def main():
pass # код который исполняется при запуске, а не при импорте
if __name__ == '__main__':
main()
__name__ будет равен __main__ при прямом запуске этого модуля, и имени файла без расширения (.py) при импорте. Для кругозора прочитайте про пространство имен в Python-е. Спойлер: модули(файлы *.py) в Python такие же объекты как и экземпляры классов, и работаем с ними соответственно