Программа Python запускается

Super User SE может быть лучшим местом для этого.

Во всяком случае: они используют его для чего-нибудь конкретного окна? Мои родители раньше использовали мой компьютер на базе Linux для просмотра веб-страниц, теперь они используют планшет Android для того же. Запуск виртуализированной Windows поверх первой мог бы стать альтернативой. Кроме того, резервное копирование и откат проще, если вы используете виртуализацию, просто используйте что-то другое для постоянного хранения данных. Может быть, удаленное хранилище с резервным копированием и откатом (для вымогателей) либо вашей собственной инфраструктурой, либо в облаке. (как синхронизация, собственное облако и т.

19
задан S.Lott 13 November 2008 в 16:37
поделиться

4 ответа

Если Ваша программа применима как библиотека, но у Вас также есть основная программа (например, протестировать библиотеку), та конструкция позволяет другим импортировать файл как библиотеке и не запустить Вашу основную программу. Если Вашу программу называют foo.py, и Вы действительно "импортируете нечто" из другого файла Python, __name__ оценивает к 'foo', но если Вы запускаете "Python foo.py" из командной строки, __name__ оценивает к '__main__'.

Примечание, что действительно необходимо вставить пробел между тем, если и _, и располагают основную программу с отступом:

if __name__ == '__main__':
    main program here
30
ответ дан 30 November 2019 в 01:57
поделиться

Guido Van Rossum предлагает :

def main(argv=None):
  if argv is None:
    argv = sys.argv
  ...

if __name__ == "__main__":
    sys.exit(main())

Этот способ, от которого можно работать main() где-то в другом месте (предоставляющий аргументы), и если Вы хотите выйти с кодом ошибки всего return 1 от main(), и он не заставит интерактивный интерпретатор выйти по ошибке.

21
ответ дан 30 November 2019 в 01:57
поделиться

Лучший шаблон - это:

def main():
   ...

if __name__ == '__main__':
   main()

Это позволяет Вашему коду быть вызванным кем-то, кто импортировал его, также делая программы таким как pychecker и работа pylint.

23
ответ дан 30 November 2019 в 01:57
поделиться

Это - хорошая практика. Во-первых, это ясно отмечает Вашу точку входа модуля (предполагающий, что у Вас нет никакого другого исполняемого кода на верхнем уровне - фу). Во-вторых, это делает Ваш модуль разрешенным к ввозу другими модулями без выполнения, которое некоторые инструменты как средства проверки кода, и т.д. должны сделать поставщики программного блока.

3
ответ дан 30 November 2019 в 01:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: