我有下面的代码,它不返回在主模块中创建的数据框。有人可以帮助可能是什么问题。如果不在 main()
中,该函数工作正常。我不确定这里遗漏了什么。我正在 Jupyter notebook 中测试此代码并尝试在新单元格中调用 exceldf
import package as pkg
def main():
list1, list2= pkg.somefunction()
exceldf = pkg.functiontoloadexcelfiles.function(parameter1, parameter2)
我希望在 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
上面的代码在没有封装在 main 函数中时运行良好。
list1,list2= pkg.somefunction()
exceldf = pkg.functiontoloadexcelfiles.function(parameter1,parameter2)
exceldf.head()
下面解决了这个问题
import package as pkg
def main():
global exceldf
list1, list2= pkg.somefunction()
exceldf = pkg.functiontoloadexcelfiles.function(parameter1, parameter2)
最佳答案
exceldf
仅在 main()
中局部声明,因此您必须将 exceldf
声明为全局变量或返回 exceldf
来自 main()
函数。
import package as pkg
def main():
list1, list2= pkg.somefunction()
exceldf = pkg.functiontoloadexcelfiles.function(parameter1, parameter2)
return exceldf
exceldf = main()
exceldf.head()
关于python main函数不返回数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73034355/