如何将 argparse args 传递给导入的 python 脚本

San*_*ta7 1 python argparse

假设我有一个可以接受 args 的 python 脚本

# testt.py
import argparse

def main(args):

    print(args.foo)
    print(args.bar)
    print(args.nee)

if __name__ == "__main__":

    parser = argparse.ArgumentParser(description='Test argument parser')

    parser.add_argument('-foo', type=str)
    parser.add_argument('-bar', type=int)
    parser.add_argument('-nee', type=bool)
    args = parser.parse_args()

    main(args)
Run Code Online (Sandbox Code Playgroud)

但不是从命令行运行它,我想从另一个 Python 程序运行它

import testt
Run Code Online (Sandbox Code Playgroud)

我怎么能传入 arg 参数?

hek*_*mgl 5

您可以为参数编写一个类:

import testt

class TesttArgs:
    def __init__(self, foo, bar, nee):
        self.foo = foo
        self.bar = bar
        self.nee = nee

testt.main(TesttArgs('foo', 2, False))
Run Code Online (Sandbox Code Playgroud)