Страницы

Поиск по вопросам

понедельник, 1 октября 2018 г.

Объясните код if __name__ == “__main__” в терминах языка Java

Я новичок в Python и стараюсь понять все через язык, который знаю, - через Java. Наткнувшись на if __name__ == "__main__", впал в ступор. Читаю ответы по данной теме, но все равно инфа сложно "ложится". Есть ли аналог этих __name__ да "__main__" на языке Java? Заранее спасибо.
P.S. Не нужно писать про дубликат. В вопросах нет аналогов с Java. Не стоит рубить с плеча. Прочтите мой вопрос внимательно, пожалуйста.


Ответ

По отдельности эти конструкции на Java не перевести, но вместе - вполне возможно если понимать что они делают.
Дело в том, что в Питоне любой модуль является исполнимым - и если его запустить, он всегда получает имя __main__. Ну а __name__ - это имя текущего модуля. Таким образом, проверка if __name__ == "__main__" проверяет что модуль был запущен из командной строки, а не был импортирован из другого модуля.
Иными словами, проверка if __name__ == "__main__" - это дополнительная точка входа в программу
В языке Java точками входа в программу являются методы main:
public static void main(String[] args)

Комментариев нет:

Отправить комментарий