函数(二)

1. 函数作用域

局部变量:

函数中定义的变量,不同的函数可以有相同的变量名,它的作用是临时保存函数中使用的数据

def test_1():
    a = 100     #局部变量
    print(a)

def test_2():
    a = 300     #局部变量
    print(a)

test_1()
test_2()

"""
运行结果:
100
300
"""

全局变量

模块级别定义的变量

a = 100     #全局变量

def test_1():
    print(a)

def test_2():
    b = 300     #局部变量
    print(a)
    print(b)

test_1()
# 运行结果:100
test_2()
"""
运行结果:
100
200
"""
print(a)
# 运行结果:100

全局变量的修改:

不可变类型的全局变量, 是要使用global关键字修改;可变类型的全局变量,不使用global也可以修改

a = 100    #不可变类型
def test_1():
    global a
    a = 1
    print(a)

test_1()
print(a)
"""
运行结果:
1
1
"""

l = [1,2,3,4]    #可变类型

def test_2():
    l.append(5)
    print(l)

test_1()
print(l)

"""
运行结果:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
"""

变量的优先级

局部变量 > 全局变量

a = 100     #全局变量
def test_1():
    a = 200     #局部变量
    print(a)

def test_2():
    b = 300     #局部变量
    print(a)
    print(b)

test_1()
# 运行结果:200
test_2()
"""
运行结果:
100
200
"""
print(a)
# 运行结果:100

全局变量的修改:

不可变类型的全局变量, 是要使用global关键字修改

上一篇:【设计模式】备忘录模式


下一篇:python极简教程05:生成器和匿名函数