Skip to content

Commit 2f0d2a5

Browse files
authored
Update Python变量作用域与闭包.md
1 parent 6dba576 commit 2f0d2a5

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,25 @@
11
# Python变量作用域与闭包
2+
## 一、变量的作用域
3+
**对于不可变变量b, 在f1()中先赋值,后引用,这时候b是函数f1()内声明的局部变量,跟全局变量b没有关系。**
4+
5+
b = 6
6+
def f1(a):
7+
"""
8+
变量b, “先赋值,后引用” ,不会报错
9+
"""
10+
print(a)
11+
b = 1
12+
print(b)
13+
14+
**对于不可变变量b,直接在f2()中引用会编译不通过,解释器会认为变量b是局部变量,在f2()中没有找到变量b的声明,就会编译出错。**
15+
16+
b = 6
17+
def f2(a):
18+
"""
19+
变量b, “先引用,后赋值”,则会报错
20+
原因:Python不要求声明变量,但是假定在函数定义体中赋值的变量是局部变量
21+
通过global关键字告诉解释器这个是全局变量
22+
"""
23+
print(a)
24+
print(b)
25+
b = 1

0 commit comments

Comments
 (0)