我有两个脚本名称是A.py和B.py
我想知道如何从A.py向B.py发送价值。
有关详细信息,请在脚本末尾运行完成A.py脚本,A.py调用B.py。
我的问题是我必须从A.py向B.py发送一些价值。
任何人都帮我如何将值A.py发送给B.py,所以我可以在B.py中使用一些值。
“我是否正确地假设你想让B.py使用值为
的所有变量在A.py完成时存在?“
这正是我想要的。我将我的A.py和B.py上传到了pastebin网站。
http://elca.pastebin.com/m618fa852< - A.py
http://elca.pastebin.com/m50e7d527< - B.py
我想使用B.py的xx值,xx值来自A.py。
抱歉,我的英文答案 0 :(得分:2)
你的问题不太清楚。
import B
B.methodToExecute(argument)
答案 1 :(得分:1)
我是否正确地假设您希望让B.py使用A.py完成时存在的值的所有变量?
[编辑]
好的,问题是你没有任何变量赋值就不能轻易做到这一点。你想要实现的是向后做的导入声明。通常,如果您在其他模块或脚本中导入模块,导入器(在此示例中为A)可以访问导入器的(B)变量,方法等,但不能向后。
在 A.py :
a = 2
print "A.a:", a
import B
print "B.b:", B.b
from B import *
print "b in our namespace:", b
在 B.py :
b = 3
这将打印:
A.a: 2
B.b: 3
b in our namespace: 3
如果你100%确定你想要这个(你为什么不用方法创建一些相关的类,或者只是将方法放在一个大模块中?),你可以从模块B导入模块A,所以如果你修改B.py:
在 B.py :
b = 3
from A import *
print "a in B's namespace:", a
...再次运行它,你会看到一些奇怪的输出,包括双线和所需的a in B's namespace: 2
线(所以它的成功率为50%)。关键是如果要导入没有函数和/或模块/类声明的简单脚本,每当Python导入一些内容时,将在Python VM中创建必要的对象和引用,导入的脚本将被执行,因此您可能会遇到麻烦与之前完成的循环导入。使用模块或类,你会更好,因为在那些只有
if __name__ == "__main__":
...
将在导入时执行。
或者,此线程中的另一个好主意是调用子进程,但是您需要在命令行上检查变量,而不是直接在脚本的命名空间中检查。
答案 2 :(得分:0)
你的问题可能过于抽象,我真的不知道你需要什么。
一般来说,你要做的就是在你完成A中的所有事情并为B读取之后,你的模块顶部会有import A
并调用A中的一个函数您要传递的值。如果B当前正在使用要覆盖的硬编码全局变量,请重构它以使用函数。