Я работаю с/переписывание кода, который первым определяет функцию следующим образом:Почему def main (argv = [__ name__]), а если __name__ == "__main__": sys.exit (main (sys.argv))?
def main(argv=[__name__]):
...
*rest of code*
...
и заканчивается:
if __name__ == "__main__":
sys.exit(main(sys.argv))
Я нахожусь под впечатлением, что это делает это проверка чтобы убедиться, что сценарий выполняется из командной строки, а затем запускает функцию main
с аргументами, предоставляемыми при выходе из python. Но почему, почему необходимо установить переменную argv
на [__name__]
в определении функции? Это не мой код, поэтому я не знаю первоначального намерения. Однако я новичок в использовании строк if __name__ == "__main__":
, чтобы определить выполнение командной строки проверки, так что, возможно, есть некоторые очевидные причины для этого синтаксиса, который мне не хватает. Любая помощь или дальнейшая информация по main
будет оценена в функции определения функции и тестирования аргументов/командной строки-vs-модуля.
Нет ничего странного в отношении 'sys.exit()', и у нас уже есть (ответили!) Вопросы в нашей базе знаний о применяемых там практиках, сравнивая '__name__' с' __main__'. Пожалуйста, подумайте о том, чтобы сузить свой вопрос, чтобы не иметь дублирующего компонента; возможно, охватывая как предварительно ответы, так и не ответы на них, делает его «слишком широким». –
... один пример среди многих: [Зачем использовать 'def main()'?] (Http://stackoverflow.com/questions/4041238/why-use-def-main) –