所以我知道之前已经以多种形式提出过这个问题,但我无法与其中任何一种联系起来,要么我有不同的东西,要么我就是不理解它们。问题是我有脚本 A 和脚本 B,在脚本 AI 中计算并拥有我想在脚本 B 中使用的所有变量。脚本 A 有各种功能,假设现在我只想将一个简单的数字从脚本 A 中的变量传递给脚本 B ,让我们调用变量value。我用过from script_A import value。现在,我已经value在 script_A 中初始化了 0 就在顶部这样说,但是 script_A 处理value,并得到与 0 明显不同的结果,但是当我调试时,我进入的是 script_B value == 0,而不是value == calculated_value_that_should_be_there。我不知道该怎么做,所以我对范围很苛刻,所以我把它放在return一个函数中,我试着让变量value成为一个全局变量。我没有传递计算的“值”,但我将 0 初始化传递给 script_B 的方式似乎没有任何作用。PS 我尝试的最后一件事以及我从本主题中看到的是导入 script_A ,因为它没有命名空间。这已经奏效了。当我编写 script_A.value 时,它是calculated_value_that_should_be_there。但是,我不知道为什么我描述的其他任何东西都不起作用。script_Afrom definitions import *variable_1 = 0variable_2 = 0variable_3 = 0variable_4 = 0 total = 0respected = 0time_diff = {}seconds_all_writes = "write"class Detect(): def __init__(self, data_manager, component_name, bus_name_list=None): def __Function_A(self): """ global time_diff global seconds_all_writes processscript_B:from script_A import respectedfrom script_A import totalimport script_A print aln_mon_detector.total print aln_mon_detector.respected我也想要字典table_content.append(script_A.time_diff[文件[script_A.seconds_all_writes])我得到KeyError: '写'
3 回答

哔哔one
TA贡献1854条经验 获得超8个赞
如果你有script A这样的:
# imports
value = 0
... # some calculations
重新组织script A为:
# imports
def main():
value = 0
... # some calculations
return value
现在,你可以导入script A中script B并运行calculations里面script B:
import script_A
value = script_A.main()
这就是你应该如何在 Python 中组织代码片段。

动漫人物
TA贡献1815条经验 获得超10个赞
这可能与不变性有关。取决于是什么value
。如果value
是一个列表(即可变对象)并且您附加到它,则更改应该是可见的。但是,如果你写
from module import x x = 5
您没有更改实际值,因此其他引用x
仍将显示原始对象。
添加回答
举报
0/150
提交
取消