Я новичок в 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)
Подробный ответ на то, что делает эта констнукция в Python, есть по ссылке, приведённой пользователем Twiss в комментарии, перепечатывать я это не буду.
В Java аналога такой конструкции нет и быть не может. В отличии от Python, импорт класса в Java не выполняет весь его код автоматически, поэтому подобные костыли не нужны. Кроме того, в Java программу нельзя начинать выполнять с произвольного класса. Точкой входа в программу может быть только класс, в котором есть метод с сигнатурой
public static void main(String[] args)
Если попытаться запустить класс, в котором такого метода нет, то вылетит ошибка "Main method not found".
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем привет! Делаю первое Андроид приложение и задался вопросом как лучше реализовывать подключение к базе данных ?? Написать свое апи на стороне...
При написании кода столкнулся с вопросом: а что же все таки быстрее? Набросал тест:
при передачи по ws больших объёмов на выскакивает такое