python main函数不返回数据帧

Eri*_*icA 2 python function dataframe

我有下面的代码,它不返回在主模块中创建的数据框。有人可以帮忙解决可能是什么问题吗?如果不在main()该功能中工作正常。我不确定这里错过了什么。我正在 Jupyter 笔记本中测试此代码,并尝试在新单元格中调用exceldf

import package as pkg

def main():
    list1, list2= pkg.somefunction()
    exceldf = pkg.functiontoloadexcelfiles.function(parameter1, parameter2)
Run Code Online (Sandbox Code Playgroud)

我希望看到数据,exceldf但出现错误"name 'exceldf' is not defined"

编辑 :

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_26012/684895253.py in <module>
----> 1 exceldf

NameError: name 'exceldf' is not defined
Run Code Online (Sandbox Code Playgroud)

上面的代码在不包含在 main 函数中时运行良好。

    list1,list2= pkg.somefunction()
    exceldf = pkg.functiontoloadexcelfiles.function(parameter1,parameter2)
    exceldf.head()
Run Code Online (Sandbox Code Playgroud)

下面解决了这个问题

import package as pkg

def main():

    global exceldf
    list1, list2= pkg.somefunction()
    exceldf = pkg.functiontoloadexcelfiles.function(parameter1, parameter2)
Run Code Online (Sandbox Code Playgroud)

小智 5

exceldf仅在本地声明main(),因此您必须声明exceldf为全局变量或exceldfmain()函数返回。

import package as pkg

def main():
    list1, list2= pkg.somefunction()
    exceldf = pkg.functiontoloadexcelfiles.function(parameter1, parameter2)
    return exceldf


exceldf = main()

exceldf.head()
    
Run Code Online (Sandbox Code Playgroud)