我有两个python脚本A
和{argparse
)。我通常用以下方式启动它们:
$ python A.py --paramA1 valA1 --paramA2 valA2
$ python B.py --paramB1 valB1 --paramB2 valB2
我希望能够从A
内调用B
,并在启动A
时指定B
的参数。简而言之,我想用A
的参数和^{A
。从外表看应该是这样的:
有没有比复制并粘贴B
的argparse
代码到A
然后在它们上调用B
更优雅的方法吗?在
编辑:为了简化操作,下面是一些示例代码:
A.py:
import argparse
def main():
parser = argparse.ArgumentParser(description="Args for A.py")
parser.add_argument("--param1A", type=int)
parser.add_argument("--param2A", type=int)
args = parser.parse_args()
valA1 = args.param1A
valA2 = args.param2A
...
return 0
备份:
import argparse
def main():
parser = argparse.ArgumentParser(description="Args for B.py")
parser.add_argument("--param1B", type=int)
parser.add_argument("--param2B", type=int)
args = parser.parse_args()
valA1 = args.param1B
valA2 = args.param2B
...
return 0
建议的C.py
,它包括A.py
和{A.py
和{
编辑2:我忘了要在A.py
中创建B.py
的一个参数,因此执行顺序是A
,然后B
,并且{B
传递一个参数。在
您可以创建一个模块
C.py
,它包含通用的argparse
逻辑,并由a和B导入从A调用B时,也可以将已解析的参数传递给B。我的意思是,A和B都应该有类似于
main
函数的东西,它接受已经解析的参数,因此不必进行两次解析。在C.py公司
B.py公司
^{pr2}$A.py
我想@Ioan Alexandru Cucu所描述的内容如下:
而不是在一个模块中有多个类,而是可以有多个具有不同类的模块。在
相关问题 更多 >
编程相关推荐