如果我if __name__ == '__main__'在脚本中使用argparse和测试我也想用作模块,我应该在该测试下导入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)
Run Code Online (Sandbox Code Playgroud)
我应该使用顶部的其他模块导入argparse并在脚本体中进行配置吗?
Bre*_*arn 38
我会将导入放在顶部,但保留在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)
Run Code Online (Sandbox Code Playgroud)
将导入放在顶部可以明确模块使用的模块.即使您不使用argpase也会导致性能影响微不足道.
它的优良把import argparse该内if __name__ == '__main__'块,如果argparse该块内只提到。显然,如果您的模块是由另一个模块导入的,则该块中的代码将不会运行,因此该模块将必须为其提供自己的参数main(可能使用自己的实例ArgumentParser)。