Модули загружаются и запускаются при выполнении первого оператора 
В качестве одного последствия, из-за того, что код верхнего уровня в файле модуля обычно выполняется только один раз, вы можете применять его для инициализации переменных. Взгляните на содержимое файла simple.ру:
В приведенном примере операторы print и = выполняются, когда модуль импортируется в первый раз, и переменная spam инициализируется во время импортирования:
Вторая и последующие операции импортирования не выполняют код модуля повторно; они всего лишь извлекают уже созданный объект модуля из внутренней таблицы модулей Python. Таким образом, переменная spam не будет инициализироваться заново:
Если вы действительно хотите, чтобы код модуля выполнился повторно при последующей операции импортирования, это делается с помощью функции
  import или from и только первого. Так было задумано — поскольку импортирование является затратной операцией, по умолчанию Python делает его только один раз на файл и однократно на процесс. Более поздние операции импортирования просто извлекают объект уже загруженного модуля.В качестве одного последствия, из-за того, что код верхнего уровня в файле модуля обычно выполняется только один раз, вы можете применять его для инициализации переменных. Взгляните на содержимое файла simple.ру:
print('hello')
spam = 1
В приведенном примере операторы print и = выполняются, когда модуль импортируется в первый раз, и переменная spam инициализируется во время импортирования:
# main.py
import simple # Первая операция импортирования: загружает и выполняет код файла
simple.spam = 2
Вторая и последующие операции импортирования не выполняют код модуля повторно; они всего лишь извлекают уже созданный объект модуля из внутренней таблицы модулей Python. Таким образом, переменная spam не будет инициализироваться заново:
import simple
print(simple.spam) # 2
Если вы действительно хотите, чтобы код модуля выполнился повторно при последующей операции импортирования, это делается с помощью функции
reload.Оператор 
  from … * может использоваться только на верхнем уровне файла модуля, но не внутри функции. Его присутствие там делает невозможным статическое обнаружение переменных. Вот почему в некоторых источниках рекомендуется импортировать все необходимое в начале файла.Куда в файле.py можно поместить оператор import?
  Anonymous Quiz
    17%
    В блок try / except
      
    4%
    Внутри проверки if … else
      
    10%
    Внутри функции (после оператора def)
      
    68%
    Во все вышеперечисленные места
      
    Подобно 
  def, операторы import и from являются исполняемыми, а не объявляемый на стадии компиляции. Они могут вкладываться внутри проверок if для выбора среди нескольких вариантов, находиться внутри оператора def функции, чтобы загружать только по вызову, использоваться в блоках try для обеспечения стандартных значений. Они не распознаются и не запускаются до тех пор, пока Python не встретит их во время выполнения программы.Что из нижеперечисленного верно про pandas.Series?
  Anonymous Quiz
    18%
    Каждому значению соответствует метка-идентификатор
      
    5%
    Отсчет идентификаторов начинается со случайного int
      
    39%
    Series — двухмерная структура данных (индекс + значения)
      
    38%
    Все вышеперечисленное
      
    Что означает точка в строках импорта выше?
  Anonymous Quiz
    16%
    Путь, включая вышестоящие папки
      
    38%
    Обращение к определенному объекту модуля
      
    38%
    Варианты 1 и 2
      
    8%
    Ничего из вышеперечисленного
      
    Синтаксис путей с точками был выбран отчасти для обеспечения нейтральности к платформе, но еще и потому, что пути в операторах 
  import становятся реальными цепочками вложенных объектов. Такой синтаксис также означает, вы можете получать странные сообщения об ошибках, если забудете опустить .ру в своих операторах import. Скажем, оператор import mod.ру предположительно является операцией импортирования пути к каталогу — он загружает mod.py, затем пытается загрузить mod\py .ру и в конечном итоге выдает потенциальносбивающее с толку сообщение об ошибке “No module named ру” (“Модуль по имени ру отсутствует”). Начиная с версии Python 3.3, сообщение об ошибке было улучшено и выглядит как “No module named ‘mod.py’; mod is not a package” (“Модуль по имени mod.py отсутствует; mod не является пакетом”).Зачем нужен файл __init__.py? #размяться
  Anonymous Quiz
    6%
    Это позволяет работать как с Python 2.X, так и 3.X
      
    9%
    Он содержит байт-код
      
    75%
    Он делает папку пакетом модулей
      
    9%
    Он содержит кэш проекта
      
    Файл __init__.py в Python используется для обозначения директории как пакета. Это означает, что директория (папка) может содержать модули (файлы .py), и Python сможет импортировать их как часть этого пакета.
  Что делает ведущая точка в коде?
  Anonymous Quiz
    12%
    Импортирует из всех модулей, заканчивающихся на spam
      
    19%
    Позволяет импортировать из объекта spam текущего файле
      
    57%
    Сужает область импорта до текущей папки
      
    11%
    Код вызовет ошибку
      
    Выражение означает «импортировать переменную eggs из модуля по имени spam, который расположен в том же самом пакете, что и файл, содержащий этот оператор».
  Чем первое выражение отличается от второго?
  Anonymous Quiz
    80%
    Дополнительная ведущая точка выполняет импортирование, начиная с родительского каталога
      
    7%
    .. позволяет импортировать откуда угодно в проекте
      
    6%
    .. позволяет импортировать атрибуты классов
      
    7%
    Ничем не отличается
      
    Точка (.) в операции относительного импортирования обозначает каталог пакета, содержащий файл, в котором находится оператор импортирования. Дополнительная ведущая точка выполняет относительное импортирование, начиная с родительского каталога текущего каталога пакета.