立即学习:https://edu.csdn.net/course/play/9347/195828?utm_source=blogtoedu
两种作用域:全局作用域和局部作用域(函数作用域)
1.全局作用域:函数以外的作用域都是全局作用域,在全局作用域中定义的变量全部是全局变量。
2.函数作用域也称为局部作用域。
在函数内部的区域,没调用一次函数就会创建一个新的函数作用域,在函数作用域中作用的变量就是局部变量。
关于变量的查找顺序
先在当前的作用域中找,如果没有则向上一级作用域中查找,直到全局作用域中查找,都没有则报错。
a = 5 (全局变量)
if True:
c = 5(这也是一个全局变量)
def fn()
b = 8(局部变量)
print{‘函数内部:a =’, a}
print{‘函数内部:b =’, b}
fn()
结果:函数内部:a = 5
函数内部:b = 8
(全局变量在函数内外都可以直接应用)
print{‘函数外部:a =’, a}
print{‘函数外部:b =’, b}
结果:错误,因为b变量没有定义。
print{‘函数外部:c =’, c}
x = 1
def f1():
x = 2
def f2():
x = 3
print (x)
def fn2():
a = 10(在函数为变量赋值时,均默认是为局部变量赋值)
global a = 10(如果你想在函数中修改全局变量的值,要使用global关键字来声明变量)
print{‘函数内部:a =’, a}
fn2()
print{‘函数外部:a =’, a}
结果(若不用global关键字来声明):函数内部:a = 10
函数外部:a = 5
结果(若不用global关键字来声明):函数内部:a = 10
函数外部:a = 10