在导入的函数中修改变量

时间:2018-10-16 13:20:35

标签: python python-3.x

说我们有两个文件:

File1.py

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

File2.py

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

我们如何在函数X中更改f

2 个答案:

答案 0 :(得分:2)

最好导出执行此功能的函数:

文件1:

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

File2

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

答案 1 :(得分:0)

您可以将X作为参数传递给f(),并在不传递任何值的情况下在函数中设置X

File1.py

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

File2.py

from File1 import f
f(10)    
# prints 10