Python 为什么';当我使用argparse时,pydoc是否工作?
对于python来说还是很新的,所以如果这看起来很明显,请原谅我,但是 我发现argparse阻止我在脚本上运行pydocPython 为什么';当我使用argparse时,pydoc是否工作?,python,Python,对于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
"""
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()
如果我取消最后一行的注释,并运行pydocscriptname,那么pydoc似乎会尝试以某种方式运行脚本,而不仅仅是显示格式化的docstring
我哪里出错了?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社区中,这是一个非常好用且易于理解的习惯用法,因此这里没有任何魔法会让您未来的读者感到困难。基本上,每个模块都有一个
\uuuu name\uuu
属性(即模块的名称)。“主”模块(python开始执行的模块)获得了特殊的名称\uuuuu main\uuuu
,而不是没有扩展名的典型文件基名。感谢您的快速响应和澄清。我现在明白了!