函数嵌套:Python中如何在函数里定义另一个函数?
Python函数嵌套指在外部函数内部定义内部函数,可隐藏功能或实现复杂逻辑。其调用方式有两种:一是在外部函数内直接调用内部函数;二是让外部函数返回内部函数对象,供外部调用。 内部函数作用域仅限于外部函数,可访问外部函数的参数或局部变量,但外部函数无法访问内部函数的局部变量,这是嵌套核心特性。 函数嵌套常见用途包括实现闭包(内部函数记住外部函数状态)和装饰器(为函数添加额外功能,如计时、日志)。它能实现代码模块化封装、保存临时状态,是Python高级特性(如闭包、装饰器)的基础。初学者可从嵌套调用和作用域规则入手,逐步掌握其在开发中的应用。
阅读全文作用域小课堂:Python变量的局部与全局作用域
Python中的作用域决定变量的访问范围,主要分为局部和全局两种。 **局部作用域**:函数内部定义的变量,仅在该函数内有效(如`age = 18`)。若函数内定义与全局变量同名变量,会优先当作局部变量处理(如`x = 200`覆盖全局`x=100`,但外部仍为100)。 **全局作用域**:函数外定义的变量,整个程序可访问(如`name = "小明"`)。直接访问无问题,但函数内若要修改全局变量,需用`global`声明(如`global score`),否则Python会误将其视为局部变量(如`score=90`不修改原全局80)。 **嵌套函数**:内层函数可访问外层函数局部变量,修改时需用`nonlocal`声明(如`nonlocal outer_var`)。 总结规则:局部仅函数内,全局全程序;修改全局用`global`,修改外层局部用`nonlocal`。合理使用作用域可避免变量冲突,提升代码可读性。
阅读全文