Если я использую argparse и тест if __name__ == '__main__'
в сценарии, который я также хотел бы использовать в качестве модуля, должен ли я импортировать argparse под этим тестом, а затем инициализировать его? Ни один из руководств по стилям, которые я нашел, не упоминает использование скрипта в скриптах, и многие примеры сценариев argparse не используют тест «if name» или используют его по-разному. Вот что я шел с до сих пор:Python: Импортировать и инициализировать Argparse. Если __name__ == '__main__'?
#! /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 с моими другими модулями в верхней и настроить его в теле сценария вместо этого?
[PEP 8] (https://www.python.org/dev/peps/pep-0008/#imports) рекомендует импортировать все модули в верхней части файла. Я бы предположил, что нет никаких исключений для скриптов, использующих тест точки входа. – Daniel