Вы можете изменить функцию main () в testt.py для выполнения анализа:
# testt.py
import sys
import argparse
def main(args):
parser = argparse.ArgumentParser(description='Test argument parser')
parser.add_argument('-foo', type=str)
parser.add_argument('-bar', type=int)
parser.add_argument('-nee', type=lambda x: bool(int(x)))
args = parser.parse_args(args)
print(args.foo)
print(args.bar)
print(args.nee)
if __name__ == "__main__":
main(sys.argv[1:])
Затем передать sys.argv [1:] в testt.main () из любой программы, импортирующей testt :
# imp.py
import sys
import testt
if __name__ == "__main__":
testt.main(sys.argv[1:])
Одним из преимуществ является то, что вам больше не нужно поддерживать отдельный класс, когда / если вы изменяете аргументы командной строки, которые хотите поддерживать.
Это dr aws сильно от: Как использовать python argparse с аргументами, отличными от sys.argv?