当我将函数分离到另一个文件并导入该文件时,我不明白为什么我不能访问df
变量。df
变量已声明为全局变量。
一旦globalDf
与print(df)
在同一个文件中,这就不是问题。这背后的原因是什么?如何确保我可以访问代码中函数内部声明的全局变量?
不起作用
文件1
import pandas as pd
def globalDf(msg):
global df
df = pd.DataFrame(msg, columns=['val1', 'val2'])
文件2
from file2 import *
arr = [[100, 400]]
globalDf(arr)
print(df)
作品
将globalDf
函数放在与print(df)
:相同的文件中
import pandas as pd
def globalDf(msg):
global df
df = pd.DataFrame(msg, columns=['val1', 'val2'])
arr = [[100, 400]]
globalDf(arr)
print(df)
Python中的全局参数对一个模块是全局的,而不是跨所有模块
如果你想从另一个模块访问全局变量,你需要这样做:
文件2:
import pandas as pd
def globalDf(msg):
global df
df = pd.DataFrame(msg, columns=['val1', 'val2'])
和文件1:
#file1
from file2 import *
import file2
arr = [[100, 400]]
globalDf(arr)
print(file2.df)
这个链接也很有用。