Python 在导入的函数中修改变量
假设我们有两个文件: File1.pyPython 在导入的函数中修改变量,python,python-3.x,Python,Python 3.x,假设我们有两个文件: File1.py X = 4 def f(): print(X) def f(X=4): print(X) File2.py from File1 import f X = 10 f() # prints 4 from File1 import f f(10) # prints 10 如何更改函数f内部的X 最好导出一个执行此任务的函数: 文件1: X = 4 def setX(newValue): global X
X = 4
def f():
print(X)
def f(X=4):
print(X)
File2.py
from File1 import f
X = 10
f()
# prints 4
from File1 import f
f(10)
# prints 10
如何更改函数
f
内部的X
最好导出一个执行此任务的函数:
文件1:
X = 4
def setX(newValue):
global X
X = newValue
def f():
print(X)
文件2
此解决方案导出一个函数,用于从外部文件1设置值;您只需调用它来修改变量
或更通用的版本:
def set_global(name, value):
globals()[name] = value
文件2:
set_global('X', 10)
f() #prints 10
您可以将
X
作为参数传递给f()
,并在未传递值的情况下在函数中设置X
File1.py
X = 4
def f():
print(X)
def f(X=4):
print(X)
File2.py
from File1 import f
X = 10
f()
# prints 4
from File1 import f
f(10)
# prints 10
给出
X
作为f()的参数是的,这是一个很好的答案。现在只需要找到一种方法使setX
更通用,并接受任何参数(不仅仅是X
)。添加了通用版本。谢谢,但我故意没有将X作为参数,因为我的用例(修补)无法更改。