python 变量作用域
2012-12-11 12:35
323 查看
python能够改变变量作用域的代码段是def、class、lamda.
if/elif/else、try/except/finally、for/while 并不能涉及变量作用域的更改,也就是说他们的代码块中的变量,在外部也是可以访问的
变量搜索路径是:本地变量->全局变量
1)如果函数中定义了同名的变量,则同名的全局变量被屏蔽,否则查找使用全局变量
2)内嵌定义的函数中的变量的使用,如果内嵌函数中没有定义,则先查找包含此内嵌函数作用域中变量的定义,最后查找全局中变量的定义。
3)注意=赋值时,不可变类型其实是产生了对原变量的引用,可变类型与原来的共享相同的内存。
4)作用域由def、class、lambda等语句产生,if、try、for等语句并不会产生新的作用域。
三 global关键字
global关键字用来在局部作用域中申明使用全局变量。
if/elif/else、try/except/finally、for/while 并不能涉及变量作用域的更改,也就是说他们的代码块中的变量,在外部也是可以访问的
变量搜索路径是:本地变量->全局变量
1)如果函数中定义了同名的变量,则同名的全局变量被屏蔽,否则查找使用全局变量
2)内嵌定义的函数中的变量的使用,如果内嵌函数中没有定义,则先查找包含此内嵌函数作用域中变量的定义,最后查找全局中变量的定义。
3)注意=赋值时,不可变类型其实是产生了对原变量的引用,可变类型与原来的共享相同的内存。
4)作用域由def、class、lambda等语句产生,if、try、for等语句并不会产生新的作用域。
三 global关键字
global关键字用来在局部作用域中申明使用全局变量。
相关文章推荐
- python语法31[变量的作用域+global]
- 2015/9/19 Python基础(15):变量作用域及生成器
- Python变量作用域与Pyunit
- python 变量作用域
- Python 的变量作用域和 LEGB 原则
- 关于Python中的变量作用域
- Python_变量的作用域
- python 变量作用域
- 再谈python的变量作用域
- python函数-变量作用域
- Python中变量的作用域
- python学习7--变量的作用域
- python 变量作用域
- python变量作用域的一点思考
- python 变量作用域
- python 函数、函数式编程、变量作用域、函数__doc__属性
- python变量作用域
- python[变量作用域-函数-闭包-装饰器-生成器]
- Python基础:11变量作用域和闭包
- Python变量作用域