簡體   English   中英

在導入的函數中修改變量

[英]Modifying a variable within an imported function

假設我們有兩個文件:

File1.py

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

File2.py

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

我們如何更改函數f內部的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

您可以將X作為參數傳遞給f()並在不傳遞任何值的情況下在函數中設置X

File1.py

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

File2.py

from File1 import f
f(10)    
# prints 10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM