首页 > 解决方案 > 在导入的函数中修改变量

问题描述

假设我们有两个文件:

文件1.py

X = 4
def f():
    print(X)

文件2.py

from File1 import f
X = 10
f()    
# prints 4

我们如何改变X函数的内部f

标签: pythonpython-3.x

解决方案


最好导出一个可以完成这项工作的函数:

文件1:

X = 4
def setX(newValue):
    global X
    X = newValue
def f():
        print(X)

文件2

from File1 import f
from File1 import setX
setX(10)
f() 

此解决方案导出一个函数以从 File1 外部设置值;你只需调用它来修改变量


或更通用的版本:

def set_global(name, value):
    globals()[name] = value

文件2:

set_global('X', 10)
f() #prints 10

推荐阅读