关于python:if __name__ ==’__ main__’的快捷方式:

Shortcut for if __name__ == '__main__':

这个有短一点的吗?

1
if __name__ == '__main__':

写起来很乏味,在我看来也不太好看:)


PEP299提出了一种解决这个问题的方法,即使用一个特殊的函数名__main__。它被拒绝,部分原因是:

Guido pronounced that he doesn't like
the idea anyway as it's"not worth the
change (in docs, user habits, etc.)
and there's nothing particularly
broken."

http://www.python.org/dev/peps/pep-0299/

因此,丑陋将继续存在,至少只要吉多的BDFL。


基本上,每个Python程序员都会这样做。所以,简单地生活。;)

此外,如果您的脚本总是要作为应用程序运行而不是作为模块导入,那么您可以完全忽略它,但是我们鼓励您无论如何都使用它,即使它不是真正必要的。


在问了这个问题之后,我决定解决它:

1
2
3
4
5
from automain import *  # will only import the automain decorator

@automain
def mymain():
    print 'this is our main function'

博客文章对此进行了解释,代码位于GitHub上,可以轻松安装:

1
easy_install automain


你的意思是像if'__main__'==__name__:一样短?


在语言中,它绝对是一个缺点,任何变成样板文件的东西,都会从一个文件复制粘贴到另一个文件。没有速记。

不过,正如疣和样板一样,至少是轻微的。


更短,如果您计算行数:

1
__name__ == '__main__' and main()


不,对不起,没有。它看起来不太好,但这就是我们所拥有的。