# 一、名称空间,加载顺序等
# 当程序运行时,代码从上至下一次读取,遇到变量与值,
# 他会在内存中开辟一个空间,存放变量与值的内存地址的对应关系。
# 这样存储变量与值得对应关系的空间叫做名称空间(命名空间)。
# 当解释器遇到函数时,他会将函数名存储在内存中,但是对于函数体莫不关心。
# 当函数执行时,他会通过函数名找到函数体,然后将函数体里面的变量等对应关系存放在一个
# 临时开辟的空间中,随着函数的结束,临时的空间关闭,这样的空间叫做临时名称空间。
![]()
# 全局名称空间:
# name = 'alex'
# age = 1000
# 局部名称空间
# def func1():
# a = 2
# b = 3
# func1()
#内置名称空间:
# len() print() input() list
'''
名称空间:
内置名称空间
全局名称空间
局部名称空间
加载顺序:内置名称空间(打开解释器时) ----> 全局名称空间 (程序执行时)-----> 局部名称空间(函数执行时)
作用域:
全局作用域:内置名称空间,全局名称空间
局部作用域:局部名称空间
取值顺序(单向):局部名称空间 ---> 全局名称空间 ----> 内置名称空间
L local
E enclosing function
G global
B built-in
![]()
'''
# sum = 666 # global
#
# def func1():
# sum = 555 # eclose
# print(sum)
# def inner():
# pass
# sum = 111 # local
# # print(sum)
# inner()
#
# func1()