python - 默认情况下总是返回函数的输入参数吗?
问题描述
我有一个如下所示的功能。代码运行良好,我只需要您的帮助来帮助我了解return
or 函数输出的存储方式。我是初学者,您的意见会有所帮助
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
不是全局变量。它仅作为参数传递给上述函数。默认情况下,函数是否也总是返回输入参数?
解决方案
sheet_df、sheet_name 和 unit_dict 未在初始问题的行范围内定义。在您对问题的编辑中,您显示了所有这些变量的设置位置。由于它们是在先前的行中设置的,因此没有什么神秘之处。
return 不返回参数或将它们放在范围内。
推荐阅读
- c - Unix系统调用:读/写和缓冲区
- css - 使用 CSS "layout-grid-type:Fixed" 混合日文和英文文本
- java - 无效的查询。“in”过滤器支持值数组中最多 10 个元素
- html - Angular ViewChild 有问题吗?
- python - 和python中的操作
- amazon-web-services - AWS Elastic Beanstalk Java 8 Amazon Linux 平台版本 2.11 空闲超时问题
- html - 如何在父 div 元素中实现 flexbox?
- android - 如何修复arrayList图像颜色文本错误?
- python - 如何在 Python 中使用 MapReduce 找到两条路径的链接?
- django - ImageField 属性没有与之关联的文件