将值传递给其他模块python

将值传递给其他模块python,python,Python,我有两个脚本名称是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站点 你的问题不太清楚 import B B.methodToExecute(

我有两个脚本名称是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站点


你的问题不太清楚

import B
B.methodToExecute(argument)

你的问题不太清楚

import B
B.methodToExecute(argument)

我是否正确地假设您希望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 = 3
b = 3
from A import *
print "a in B's namespace:", a
B.py中:

a = 2
print "A.a:", a
import B
print "B.b:", B.b
from B import *
print "b in our namespace:", b
b = 3
b = 3
from A import *
print "a in B's namespace:", a
这将打印:

A.a: 2
B.b: 3
b in our namespace: 3
如果您100%确定您想要这样做(为什么不使用方法创建一些相关类,或者将方法放在一个大模块中?),您可以从模块B导入模块A,因此如果您修改B.py:

B.py中:

a = 2
print "A.a:", a
import B
print "B.b:", B.b
from B import *
print "b in our namespace:", b
b = 3
b = 3
from A import *
print "a in B's namespace:", a
。。。再次运行它,您将看到一些奇怪的输出,其中有两行,并且在B的名称空间中有所需的
a:2
line(因此成功率为50%)。关键是,如果您导入的是没有函数和/或模块/类声明的简单脚本,那么每当Python导入某些内容时,都会在Python VM中创建必要的对象和引用,并执行导入的脚本,因此您可能会在以前完成的循环导入中遇到问题。使用模块或类会更好,因为在这些模块或类中,只有在

if __name__ == "__main__":
  ...
将在导入时执行


或者,该线程中的另一个好主意是调用子流程,但是您需要在命令行上检查变量,而不是直接在脚本的命名空间中检查变量。

我是否正确地假设您希望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 = 3
b = 3
from A import *
print "a in B's namespace:", a
B.py中:

a = 2
print "A.a:", a
import B
print "B.b:", B.b
from B import *
print "b in our namespace:", b
b = 3
b = 3
from A import *
print "a in B's namespace:", a
这将打印:

A.a: 2
B.b: 3
b in our namespace: 3
如果您100%确定您想要这样做(为什么不使用方法创建一些相关类,或者将方法放在一个大模块中?),您可以从模块B导入模块A,因此如果您修改B.py:

B.py中:

a = 2
print "A.a:", a
import B
print "B.b:", B.b
from B import *
print "b in our namespace:", b
b = 3
b = 3
from A import *
print "a in B's namespace:", a
。。。再次运行它,您将看到一些奇怪的输出,其中有两行,并且在B的名称空间中有所需的
a:2
line(因此成功率为50%)。关键是,如果您导入的是没有函数和/或模块/类声明的简单脚本,那么每当Python导入某些内容时,都会在Python VM中创建必要的对象和引用,并执行导入的脚本,因此您可能会在以前完成的循环导入中遇到问题。使用模块或类会更好,因为在这些模块或类中,只有在

if __name__ == "__main__":
  ...
将在导入时执行


或者,这个线程中的另一个好主意是调用子流程,但是您需要在命令行上检查变量,而不是直接在脚本的名称空间中检查变量。

您的问题可能措辞过于抽象,我无法真正了解您需要什么


通常,在完成A中的所有操作并读取B后,您将在模块顶部导入A,并调用A中的函数,该函数包含所有要传递的值。如果B当前使用的是您想要覆盖的硬编码全局变量,请重构它以使用函数。

您的问题可能措辞过于抽象,我无法真正了解您需要什么


通常,在完成A中的所有操作并读取B后,您将在模块顶部导入A,并调用A中的函数,该函数包含所有要传递的值。如果B当前使用的是您要覆盖的硬编码全局变量,请重构它以使用函数。

如果OP使用
子流程
子流程调用(['B.py',参数])
每当我导入B时,整个B文件都会执行…我只想从文件接收xx值..如何仅接收xx值?在这种情况下,OP会使用
子流程
子流程调用(['B.py',参数])
每当我导入B时,整个B文件都会执行…我只想从文件中接收xx值..如何只接收xx值?提前感谢您好,是的“我是否正确地假设您希望B.py使用A.py完成时存在的所有具有值的变量?”这正是我想要的。我将我的A.py和B.py上传到pastebin站点。您好,是“我是否正确地假设您希望B.py使用A.py完成时存在的所有具有值的变量?”这正是我想要的。我将我的A.py和B.py上传到pastebin站点。