python命名空间和作用域

Python的命名空间是一个字典,分为局部、全局和内置空间。局部空间用于函数变量,全局空间用于模块变量,内置空间包含内置函数。locals()和globals()分别用于访问局部和全局命名空间。命名空间加载顺序为内置->全局->局部,查找顺序则是局部->全局->内置。作用域分为LEGB:局部、嵌套、全局和内建。命名空间定义变量名与值的对应,而作用域定义变量的可见范围。
摘要由CSDN通过智能技术生成

命名空间

定义

Python的命名空间的本质是一个字典,用来记录变量名称和值。字典的key是变量的名称,字典的value对于的是变量的值。例如 {‘name’:’zs’,’age’:10}
命名空间一共分为三种:局部命名空间、全局命名空间、内置命名空间
局部空间:
每个函数都有自己的命名空间,叫做局部空间,它记录了函数的变量,包括函数的参数 和局部定义的变量
全局空间:
每个模块拥有它自已的命名空间,叫做全局命名空间,它记录了模块的变量,包括函数、 类、其它导入的模块。
内置名称空间:
任何模块均可访问它,它存放着内置的函数和异常。

1. 名称空间的访问

局部命名空间使用locals()函数来访问

def func(num1,num2):
	a=1
	return locals()


print(func(2,3))  #  {'a': 1, 'num2': 3, 'num1': 2}

全局命名空间的访问使用globals()函数访问

a=10

def func(name,age):
	num=2

func(2,3)
print(globals())

2.命名空间的加载顺序

内置命名空间(程序运行前加载)->全局命名空间(程序运行中:从上到下加载)->局部命名空间(程序运行中:调用时才加载)当函数返回结果或

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值