对于python仍然很新,所以请原谅我,如果这看起来很明显,但是 我发现argparse阻止我在我的脚本上运行pydoc。
"""
Script to blah blah blah
"""
import argparse
parser = argparse.ArgumentParser(description='Script to do something useful')
# If I uncomment this line, pydoc fails !
#args = parser.parse_args()
如果我取消注释最后一行,并运行 pydoc scriptname ,那么pydoc似乎尝试以某种方式运行脚本,而不仅仅是显示格式化的docstring ??
我哪里错了?
答案 0 :(得分:1)
pydoc
导入文件,这意味着argparse将会这样做。解决此问题的典型方法是设置一个条件,仅当模块作为主模块导入时才会运行:
"""
Script to blah blah blah
"""
import argparse
parser = argparse.ArgumentParser(description='Script to do something useful')
if __name__ == '__main__':
args = parser.parse_args()
这是python社区中一个非常好用和理解的习惯用法,因此这里没有任何魔法会给你未来的读者带来困难。基本上,每个模块都有一个__name__
属性(这是模块的名称)。 “master”模块(python启动它的执行的模块)获取特殊名称__main__
,而不是没有扩展名的典型文件基本名称。