从其他脚本访问主函数中的变量

Access variable in main function from other script

这可能是一个愚蠢的问题,但我有点难以让它发挥作用:

假设我有两个文件:

script1.py :

    myValue = 0

def addition():
    global myValue
    myValue += 1

if __name__ == '__main__':
    addition()
    print(myValue)

script2.py :

def getMyValue():
    from script1 import myValue
    print(myValue)

getMyValue()

输出:0

我想让我的第二个脚本访问更新后的值,这样我就可以得到“1”作为输出。 你认为我如何才能正确地做到这一点?

感谢您的回复

变量 myValue 未在 script2.py 中更新,因为您没有通过导入 script1 调用 addition() 函数。这是由于条件 if __name__ == '__main__' 确保仅当您 运行 脚本本身时才执行以下每个逻辑。如果将 script1 导入另一个脚本,则条件 if __name__ == '__main__' 变为 False,下面代码的 none 将变为 运行。 您可以直接在 script1 中调用 addition(),这不是一个非常干净的解决方案 - 脚本 1:

myValue = 0

def addition():
    global myValue
    myValue += 1

addition()

或者重新考虑addition()是否真的需要对全局变量进行操作。请注意 python 中的全局变量只是一个模块中的全局变量,而不是跨多个模块的全局变量,因此将变量和函数都导入脚本 2 将不允许您在脚本 2 中调用 addition() 并获得预期效果.但是,我建议让它接受这样的参数 - script1:

myValue = 0

def addition(a_value):
    a_value += 1
    return a_value

if __name__ == '__main__':
    myValue = addition(myValue)
    print(myValue)

然后调用script2中的加法函数,例如如下- script2:

from script1 import *

def getMyValue():
    my_new_value = addition(myValue)
    print(my_new_value)

getMyValue()