Python程序末尾如何正确闭合函数?闭合时报错该如何处理?
Python代码封装为函数时的常见报错解决方案
- 缩进错误排查
Python语法强制要求函数体内的所有代码统一缩进4个空格(或1个制表符),如果原有代码包裹到def 函数名():下方后,存在缩进不统一、部分行未缩进的情况,会直接触发语法报错。你可以选中所有需要放入函数的代码,使用编辑器的批量缩进功能(绝大多数代码编辑器选中代码后按Tab即可批量增加缩进,按Shift+Tab可批量减少缩进)统一调整格式。 - 作用域问题排查
如果原有代码中用到了全局变量,或是你需要在函数外部获取函数内的计算结果,就会触发变量未定义、运行结果不符合预期的问题。解决方案:函数运行需要的外部值统一作为入参放到函数定义的括号内;函数执行完成需要输出的结果,在函数末尾加return 返回值语句抛出,调用函数时用变量接收返回值即可。 - 调用逻辑位置排查
函数的调用语句要和def定义行保持同级缩进,如果误将调用语句写到了函数内部的缩进范围内,要么会出现循环调用报错,要么代码执行时不会触发预期逻辑。同时要保证函数定义代码放在调用代码的前面,否则会触发「函数未定义」报错。 - 参数/返回值格式校验
如果作业明确要求了函数的入参个数、返回值格式,需要核对你的函数定义是否符合要求,比如要求接收2个数值参数返回计算结果,你定义函数时没有预留参数位,调用时传参就会直接触发参数数量不匹配的报错。
封装示例参考:
原有非函数写法:
a = 5 b = 7 res = a * b print(res)
正确封装后的函数写法:
# 定义函数,预留入参位 def calc_multiply(num1, num2): # 原有代码统一缩进 res = num1 * num2 # 返回结果 return res # 同级缩进调用函数 result = calc_multiply(5,7) print(result)
内容的提问来源于stack exchange,提问作者Amal Jaimon
相关产品推荐
相关产品推荐

