Вопросы и задачки для подготовки к собеседованиям и прокачки навыков
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Другие наши проекты: https://tprg.ru/media
Post #3766
1.13K
PY @quiz_python
Showing posts older than #3768 · Back to latest

def, операторы import и from являются исполняемыми, а не объявляемый на стадии компиляции. Они могут вкладываться внутри проверок if для выбора среди нескольких вариантов, находиться внутри оператора def функции, чтобы загружать только по вызову, использоваться в блоках try для обеспечения стандартных значений. Они не распознаются и не запускаются до тех пор, пока Python не встретит их во время выполнения программы.from … * может использоваться только на верхнем уровне файла модуля, но не внутри функции. Его присутствие там делает невозможным статическое обнаружение переменных. Вот почему в некоторых источниках рекомендуется импортировать все необходимое в начале файла.import или from и только первого. Так было задумано — поскольку импортирование является затратной операцией, по умолчанию Python делает его только один раз на файл и однократно на процесс. Более поздние операции импортирования просто извлекают объект уже загруженного модуля.
print('hello')
spam = 1
# main.py
import simple # Первая операция импортирования: загружает и выполняет код файла
simple.spam = 2
import simple
print(simple.spam) # 2
reload.

if является зарезервированным словом — оператор import if приведет к синтаксической ошибке.