如何使用从另一个文件python

时间:2018-10-04 07:51:51

标签: python file import

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

问题是我有脚本A和脚本B,在脚本A中我计算并拥有了要在脚本B中使用的所有变量。

脚本A具有各种功能,现在我只想将一个简单的数字从脚本A中的变量传递给脚本B,我们将其称为变量value

我使用了from script_A import value

现在,我已经在script_A中value初始化了,右上角是0,但是script_A处理value并得到明显不同于0的结果,但是当我调试时,我是进入script_B value == 0,而不是value == calculated_value_that_should_be_there

我不知道该怎么做,所以我对范围很苛刻,因此将其放在函数的return中,我尝试将变量value设置为全局变量。我没有传递计算出的“值”,但我传递给script_B那个0初始化的方法似乎无济于事。

我尝试过的

P.S最后一件事,是从该主题中看到的,是导入没有名称空间的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 [file [script_A.seconds_all_writes])

我知道

KeyError:“写入”

3 个答案:

答案 0 :(得分:1)

如果没有示例,这听起来有点令人困惑,但是,原则上,您要尝试执行的操作应该可行。看看下面的最小示例。

ModuleA-定义变量

# create the variable
someVariable = 1.

# apply modifications to the variable when called
def someFunc(var):
    return var + 2

# ask for changes
someVariable = someFunc(someVariable)

ModuleB-使用变量

import moduleA

# retrieve variable
var = moduleA.someVariable

print(var) # returns 3

答案 1 :(得分:0)

这可能与不变性有关。取决于value是什么。如果value是一个列表(即可变对象),并且将其追加到列表中,则更改应该是可见的。但是,如果您写

from module import x
x = 5

您没有更改实际值,因此对x的其他引用仍将显示原始对象。

答案 2 :(得分:0)

如果您有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中组织代码段。