全局变量与局部变量

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全局变量与局部变量
1.全局变量:⽆缩进的变量,在整个代码中任意位置都可以调⽤
2.局部变量:在⼦程序中设置的有缩进的变量,只能在⼦程序中调⽤
3.局部变量与全局变量重名时,互相不影响,局部变量总是先从⾃⼰等层次的代码块中寻找,找不到在从外⾯⼀层找
4.⼀般全局变量设置成⼤写形式,⽽局部变量设置成⼩写,便于区分
5.例⼀:
1def test():
2print(name)
3 test() #输出‘alex’
name = 'alex'
def test():
name = 'pig'
print(name)
test() #输出pig
6.在⼦程序中想修改全局变量时,可引⼊ global
name = 'alex'
def test():
global name
name = 'pig'
print(name)
test() #输出pig
7.函数嵌套
name = 'alex'
def test():
name = 'pig'
def test_1():
name_1 = 'cat'
print(name_1)
def test_2():
name_2 = 'dog'
print(name_2)
test_2()
print(name)
test_1()
test() #依次输出pig,cat,dog
8.前向引⽤:函数即变量
函数之间互相引⽤时,不在乎函数的顺序,因为调⽤时均在内存⾥,但是由于执⾏命令是有顺序,执⾏的命令应在所涉及的所有函数之后,否则读取不到,会报错。

如:
1def test():
2 name = 'Mike'
3print(name)
4 test_1()
5def test_1():
6 name = 'John'
7print(name)
8test()
9def test_1():
10 name = 'John'
11print(name)
12def test():
13 name = 'Mike'
14print(name)
15 test_1()
16test()
17def test():
18 name = 'Mike'
19print(name)
20 test_1()
21test()
22def test_1():
23 name = 'John'
24print(name) #会报错,上⾯两个输出⼀样
9.改变上⼀级变量,使⽤ nonlocal
def test():
name = 'John'
print(name)
def test_1():
nonlocal name
name = 'Mary'
print(name)
test_1()
test() #输出John,Mary
10.全局变量不管在哪个⼦程序中始终可以修改(global形式)。

相关文档
最新文档