首页 > 解决方案 > 默认情况下总是返回函数的输入参数吗?

问题描述

我有一个如下所示的功能。代码运行良好,我只需要您的帮助来帮助我了解returnor 函数输出的存储方式。我是初学者,您的意见会有所帮助

dataFramesDict = dict()

def create_df(xls,s): 
   ......
   return sheet_df,sheet_name

def transform_stage_1_df(sheet_df,sheet_name):
    ..... 
    .....
    return sheet_df,sheet_name

def transform_stage_2_df(sheet_df, sheet_name):

     result = pd.concat(....)
     return result

如您所见,我仅将result数据帧作为函数的输出返回。函数没有返回其他变量

当我按如下顺序调用该函数时,我希望它在最后一行抛出一个错误dataFramesDict[sheet_name],但它工作正常。

sheet_df,sheet_name = create_df(xls,s)
sheet_df,sheet_name = transform_stage_1_df(sheet_df,sheet_name)
dataFramesDict[sheet_name] = transform_stage_2_df(sheet_df,sheet_name)

我不应该收到如下错误消息吗

sheet_name 未定义

我尝试重新启动内核以确保它没有在其他地方定义。

因为sheet_name不是全局变量。它仅作为参数传递给上述函数。默认情况下,函数是否也总是返回输入参数?

标签: pythonpython-3.xfunctionreturnreturn-value

解决方案


sheet_df、sheet_name 和 unit_dict 未在初始问题的行范围内定义。在您对问题的编辑中,您显示了所有这些变量的设置位置。由于它们是在先前的行中设置的,因此没有什么神秘之处。

return 不返回参数或将它们放在范围内。


推荐阅读