1.定义在函数内部的变量称为局部變量(函数的形参也是局部变量)
2.局部变量只能在函数内部使用
3.局部变量在函数调用时才能够被python 创建变量在函数调用之后会自动销毁
1.定义在函数外部,模块内部的变量称为全局变量
2.全局变量所有函数都可以直接访问(但函数内部不能直接修改全局变量的绑定关系)
1.在函数内首次對变量赋值是python 创建变量局部变量,再次为变量赋值是修改局部变量的绑定关系
2.在函数内部的赋值语句不会对全局变量造成影响
作用域也叫命名空间是访问变量时查找变量名的范围空间
作用域 英文解释 英文简写
2.包裹此函数的外部嵌套函数内部的变量
golbals() 返回全局作用域内变量嘚字典
locals() 返回局部作用域内变量的字典
1.告诉解释执行器,global语句声明的一个或多个变量这些变量的作用域为模块级的作用域的变量,也全局铨局变量
将赋值变量映射到模块文件内部的作用域
1. 全局变量如果要在函数内部被赋值则必须经过全局声明,否则会被认为是局部变量
2. 全局变量在函数内部不经过声明就可以直接访问
3. 不能先声明局部变量再用global声明为全局变量,不符合规则
4. global变量列表里的变量名不能出现茬次作用域内的形参列表
告诉解释器nonlocal声明的变量不是局部变量,也不是全局变量而是外部嵌套函数内的变量
1.nonlocal语句只能在被嵌套函数内蔀进行使用
2.访问nonlocal变量将对外部嵌套函数作用域内的变量进行操作
3.当有两层或两层以上函数嵌套时,访问nonlocal变量只对最近一层的变量进行操作
4.nonlocal語句的变量列表的变量名不能出现在此函数的参数列表里