猿问

如何使用从另一个文件python导入的变量中的值

所以我知道之前已经以多种形式提出过这个问题,但我无法与其中任何一种联系起来,要么我有不同的东西,要么我就是不理解它们。


问题是我有脚本 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_A



from definitions import *

variable_1 = 0

variable_2 = 0

variable_3 = 0

variable_4 = 0 


total = 0

respected = 0


time_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


        process


script_B:

from script_A import respected

from script_A import total



import 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: '写'


守着一只汪
浏览 136回答 3
3回答

哔哔one

如果你有script A这样的:# importsvalue = 0...  # some calculations重新组织script A为:# importsdef main():    value = 0    ...  # some calculations    return value现在,你可以导入script A中script B并运行calculations里面script B:import script_Avalue = script_A.main()这就是你应该如何在 Python 中组织代码片段。

动漫人物

这可能与不变性有关。取决于是什么value。如果value是一个列表(即可变对象)并且您附加到它,则更改应该是可见的。但是,如果你写from module import x x = 5您没有更改实际值,因此其他引用x仍将显示原始对象。
随时随地看视频慕课网APP

相关分类

Python
我要回答