如果我在脚本中使用 argparse 和 if __name__ == '__main__' 测试并且我也想用作模块,我是否应该在该测试下导入 argparse 然后初始化它?我发现的所有样式指南都没有提到在脚本中使用 argparse,许多 argparse 脚本示例不使用“if name”测试或以不同方式使用它。到目前为止,这是我一直在做的事情:

#! /usr/bin/env python

def main(name):
    print('Hello, %s!' % name)

if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser(description = 'Say hello')
    parser.add_argument('name', help='your name, enter it')
    args = parser.parse_args()

    main(args.name)

我应该将 argparse 与顶部的其他模块一起导入并在脚本正文中配置它吗?

最佳答案

我会将导入放在顶部,但将使用它的代码留在 if __name__ 块中:

import argparse

# other code. . .

def main(name):
    print('Hello, %s!' % name)

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description = 'Say hello')
    parser.add_argument('name', help='your name, enter it')
    args = parser.parse_args()

    main(args.name)

将导入放在顶部可以阐明您的模块使用哪些模块。即使您不使用 argpase,也导入它对性能的影响可以忽略不计。

关于Python:在 if __name__ == '__main__' 之后导入和初始化 Argparse ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27957373/

10-16 19:04