Python作用域问题详解

本文详细探讨了Python编程中的作用域问题,包括全局、局部、嵌套和内置作用域,通过实例阐述了变量的访问范围和作用域规则,并介绍了Python变量搜索的LEGB原则。
摘要由CSDN通过智能技术生成

Python作用域问题

定义:在Python程序中创建、改变、查找变量名时,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域。Python的作用域是静态的,在源代码中变量名被赋值的位置决定了该变量能被访问的范围。即Python变量的作用域由变量所在源代码中的位置决定。
作用域的产生:

  1. 只有当变量在Module(模块)、Class(类)、def(函数)中定义的时候,才会有作用域的概念。
  2. 在作用域中定义的变量,一般只在作用域中有效。
  3. 在if-elif-else、for-else、while、try-except/try-finally等关键字的语句块中并不会产生作用域

作用域问题:
L(local)局部作用域 函数内的命名空间

E(enclosing)嵌套作用域 外部嵌套函数的命名空间

G(global)全局作用域 所在模块(文件)的命名空间

B(built-in)内置作用域 Python内置模块的命名空间

下面给大家用例子分别解释

1.0 全局作用域

count = 10     #定义全局变量
if __name__ == "__main__":
    print(count)   # 调用全局变量

如果想在函数中调用全局变量的时候

count = 10     # 定义全局变量
def Printtime():    # 定义函数
    global count   # 使用global关键字使用全局变量
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值