运行2个带依赖项的python脚本

2024-04-24 14:01:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个python脚本,我正试图作为最终的脚本运行,但我无法转移变量。我把所有的资料都写下来了。你知道吗

script\u B.py和script\u C.py使用脚本A中的所有变量,因此“from script\u A import*”对每个变量都有效。你知道吗

我想在最终脚本final中同时运行script\B.py和script\C.py_脚本.py
在我的期末考试中,如果不需要两次初始化script\u A.py中的变量,我怎么做呢_脚本.py?你知道吗


Tags: frompyimport脚本scriptfinal资料正试图
2条回答

如果需要将script_B.pyscript_C.py文件分别作为可执行脚本,我的解决方案是重构脚本以包含将所有相关变量作为参数的函数:

script_A.py

var1 = 'foo'
var2 = 'bar'

script_B.py

def do_b(var1, var2):
    pass    # do things with var1 and var2

if __name__ == '__main__':
    from script_A import var1, var2
    do_b(var1=var1, var2=var2)

script_C.py

def do_c(var1, var2):
    pass    # do things with var1 and var2

if __name__ == '__main__':
    from script_A import var1, var2
    do_c(var1=var1, var2=var2)

final_script.py

from script_A import var1, var2
from script_B import do_b
from script_C import do_c


def main():
    do_b(var1, var2)
    do_c(var1, var2)

if __name__ == '__main__':
    main()

您可以分别使用script_Bscript_C引用script_A的变量。你知道吗

下面是一个演示:

A.py

foo = 5
print('In A')

B.py

from A import *
print('In B')

final.py

import B
print('In final')
print B.foo

现在,运行final.py会得到:

In A
In B
In final
5

如您所见,一旦B导入A的数据,它就成为了B的一部分,因此import B的其他类可以通过B直接引用A的数据,而无需再次导入A。你知道吗

相关问题 更多 >