if __name__ == "__main__":
# some
# commands
# doing
# stuff
Это хороший маленький трюк в Python, который используется при написании библиотек.Когда вы import
библиотека, вы обычно просто хотите импортировать классы и функции, но не хотите выполнять пример кода.Это отличается, когда вы выполняете файл библиотеки как отдельный скрипт.Когда вы сделаете это, вы ожидаете получить несколько примеров использования этой библиотеки.В Python это достигается с помощью if __name__ == "__main__":
.__name__
- это переменная, содержащая строку, специфичную для текущего файла.Для основного файла эта строка всегда имеет значение "__main__"
, так что это простой способ определить, является ли файл основным файлом или просто какой-то библиотекой.
Основная проблема - отступ.Python может сообщать блоки логического кода (например, определения функций, тела if-предложений или циклы) с помощью отступа.Если Python сообщает вам, что есть IndentationError
, то причиной этого, вероятно, является неформатный код.Эта ошибка также может возникать, если вы смешиваете табуляции и пробелы, поэтому будьте осторожны, чтобы избежать этого.Золотой стандарт имеет отступ от 4 пробелов, а не табуляции.
Кроме того, использование if __name__ == "__main__":
почти никогда не имеет смысла в контексте с отступом.Достаточно безопасно либо полностью удалить этот блок (если вы когда-либо используете эти файлы в качестве библиотек), либо удалить его, чтобы if
был полностью удален, а тело предложения if имеет 4 пробела.