python之变量作用域及global关键字

Python的变量作用域包括局部、嵌套、全局和内置四种。局部作用域通常在函数内部,不受外部影响;嵌套作用域存在于多层函数中,内部函数无法直接修改外部函数变量;全局作用域限于单文件内部,需用global声明在函数内使用;内置作用域包含标准库的内置变量。查找顺序为:局部 -> 嵌套 -> 全局 -> 内置。注意,使用全局变量需用global关键字,而嵌套函数内部可通过nonlocal关键字引用外部变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python的变量作用域共四种:局部作用域local、嵌套作用域enclosing function locals、全局作用域global、内置作用域builtin

先看变量名的产生:赋值语句=,import、def,函数内部还有形参。

  • 局部作用域:

    一般新创建一个函数,都会生成一个局部空间,也就有一个局部作用域。没有特殊声明的情况下,和其他作用域互不影响。

  • 嵌套作用域:

    多重嵌套函数里会产生。嵌套函数中,内部函数无法修改外部函数里的变量。

  • 全局作用域:

    限于单文件内部,一般情况下不能在函数内部即局部作用域和嵌套作用域中产生影响,需要在局部作用域中调用这个变量时,需要使用global语句。

  • 内置作用域:

    标准库的builtin模块实现。

python查找变量名的顺序由内向外:

1、查找最内层,一般是局部作用域local。

2、上一层未找到,继续查找外层嵌套作用域

3、仍然未找到,在文件模块里查找,即全局作用域

4、未找到,查找内置作用域

5、还是没找到,异常。

注意点:

1、在局部作用域或者嵌套作用域中使用全局变量<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值