尝试在模块级使用带有Pandas的全局变量时出现未定义错误

zc0qhyus  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(131)

我试图使一个数据框对象全局,我遇到了麻烦,我不知道为什么。我有这个跨越2个文件:main.pyhelperFunction.py
它归结为helperFunction.py

import pandas as pd
def createGlobalVars(file_path):
 global my_df
 my_df = pd.read_csv(file_path)
 print(my_df.head()

main.py

import helperFunction

def main():
 helperFunction.createGlobalVars('the_file.csv')
 print(my_df.head())
if __name__=='__main__':
 main()

辅助功能print正常工作:

data
0   'my data'
1   'my data'
2   'my data'
3   'my data'
4   'my data'

但是主打印给我的是my_df is not defined
这违反了我对全局变量的理解,所以我一定是漏掉了什么。

yjghlzjz

yjghlzjz1#

如果你改变你的全局变量而不是赋值给它,事情会按预期的方式进行:

# helperFunction.py

import pandas as pd

my_df = []

def createGlobalVars(file_path):
    global my_df
    my_df.append(pd.read_csv(file_path))
# main.py

from temp2 import *

def main():
    createGlobalVars('the_file.csv')
    print(my_df[0].head())

if __name__=='__main__':
    main()

使用以下the_file.csv

a,b
1,2

运行python main.py输出:

a  b
0  1  2

相关问题