名称空间和作用域
名称空间和作用域
名称空间
变量名/函数名---》名称-->名称空间:专门存储名称空间的
内置名称空间:数据类型自带内置方法如:len,list,dict
全局名称空间:除了内置和局部都叫全局
局部名称空间:函数内部定义的都叫局部
执行顺序
- 内置名称空间:python解释器启动的时候就有了
- 全局名称空间:执行文件代码的时候才会有全局
- 局部名称空间:函数调用的时候才会有局部
搜索顺序
先从当前位置寻找,找不到在按照这种顺序,不会逆着方向寻找 局部--》全局--》内置--》报错
作用域
全局作用域:内置名称空间+全局名称空间
局部作用域:局部名称空间
全部作用域x和局部作用域y没有任何关系
局部作用域1和局部作用域2没有任何关系
# global和nonlocal了解,尽量不使用
global 让global以下的局部的x变成全局的x
nonlocal 让x成为成为顶层函数的局部,不让他成为全局
所有可变类型可以打破以上规则
函数嵌套
函数里面有函数
def 函数名():
def 函数名():
代码块
def f1():
print('from f1')
def f2():
print('from f2')
res = f1()
# ***:函数内部定义的函数,外部不能用
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步