python 作用域与命名空间

作用域

作用域分为:

  1. 全局作用域
  2. 局部作用域

在函数内部的作用域叫做局部作用域,局部作用域中的变量叫做局部变量

非函数内部的作用域叫做全局作用域,全局作用域中的变量叫做全局变量

局部作用域可以使用全局变量,全局变量不能试用局部变量

变量的使用规则: 从内向外,找到后返回

  1. 函数作用域中命名全局变量global
def fn():
	global 变量 # 现在改变量为全局变量
# 注意:不可以在函数中先使用一个全局变量后在用该变量命名局部变量
报错:
    a = 1 
    def fn():
        print(a) # 全局变量
        a += 1 # 这个a是局部变量 
        
  1. 在函数或其他作用域中使用或修改上一层(非全局)变量nonlocal
a = 1 
def fn1():
    a = 2 
    def fn2():
        a = 3  # a = 4 
        def fn3():
            nonlocal a 
            a = 4 
报错:
    b = 1 
    def fn():
        nonlocal b            

命名空间

命名空间: python中的所有变量都被存储在命名空间内,每个作用域都有一个命名空间
		命名空间本质就是一个字典,是用来存储变量的字典
locals():获得挡前作用域的命名空间

posted @   发烧的汤圆  阅读(122)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示