Ярлык для if __name__ == '__main__':
Есть ли более короткая форма этого?
if __name__ == '__main__':
Довольно утомительно писать, а также выглядит не очень красиво, на мой взгляд:)
Ответы
Ответ 1
PEP299 предложил решение этой бородавки, а именно специальное имя функции __main__
. Он был отклонен, отчасти потому, что:
Гвидо объявил, что ему не нравится идея в любом случае, поскольку она "не стоит изменение (в документах, пользовательских привычках и т.д.) и нет ничего особенно сломанный".
http://www.python.org/dev/peps/pep-0299/
Таким образом, уродство останется, по крайней мере, до тех пор, пока Гвидо БДФЛ.
Ответ 2
В основном каждый программист на языке python делает это. Так просто жить с ним.;)
Кроме того, вы можете полностью опустить его, если ваш script всегда предназначен для запуска в качестве приложения, а не для импорта в качестве модуля, но вам все же рекомендуется использовать его, даже если это действительно не нужно.
Ответ 3
После того, как я задал этот вопрос, я решил сделать для него решение:
from automain import * # will only import the automain decorator
@automain
def mymain():
print 'this is our main function'
Сообщение в блоге объясняет это, а код находится в github и может быть легко установлен:
easy_install automain
Ответ 4
Это определенно бородавка на языке, как и все, что становится шаблоном, и копируется и вставляется из файла в файл. Там нет сокращений.
Как и бородавки и пластырь, хотя, по крайней мере, это незначительный.
Ответ 5
Вы имеете в виду более короткое, чем if'__main__'==__name__:
?
Ответ 6
Нет, извините, нет. Это не выглядит великолепно, но это то, что у нас есть.
Ответ 7
Короче, если вы подсчитываете строки:
__name__ == '__main__' and main()