导入模块时的全局变量范围



当我将函数分离到另一个文件并导入该文件时,我不明白为什么我不能访问df变量。df变量已声明为全局变量。

一旦globalDfprint(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)

这个链接也很有用。

相关内容

  • 没有找到相关文章

最新更新