一、global关键字
1、全局变量的定义与使用
x = 10 # 全局变量x def test(): print(x) # 函数内部访问全局变量 test() # 输出10
2、修改全局变量
x = 10 # 全局变量x def test(): global x # 使用global声明x为全局变量 x = 20 # 修改全局变量x print(x) test() # 输出20 print(x) # 输出20
3、注意事项
在函数内部使用global声明变量为全局变量后,不能直接对变量进行赋值,因为会被视为新的局部变量。必须使用赋值语句才能对全局变量进行修改。
二、nonlocal关键字
1、外层函数变量的使用
def outer(): x = 10 # 外层函数变量x def inner(): print(x) # 内层函数访问外层函数变量 inner() outer() # 输出10
2、修改外层函数变量
def outer(): x = 10 # 外层函数变量x def inner(): nonlocal x # 使用nonlocal声明上一级变量 x = 20 # 修改外层函数变量x print(x) inner() print(x) outer() # 输出20和20
3、注意事项
使用nonlocal声明变量为上一级函数中的变量后,不能对该变量进行赋值,因为会被视为新的局部变量。必须使用赋值语句才能对外层函数变量进行修改。
三、lambda关键字
1、lambda函数的简单定义
# 定义一个加法函数 def add(x, y): return x + y # 使用lambda定义同样的加法函数 add_lambda = lambda x, y: x + y print(add(1, 2)) # 输出3 print(add_lambda(1, 2)) # 输出3
2、lambda函数的应用
# 使用lambda函数作为参数排序 a = [(1, 2), (4, 1), (3, 4)] a.sort(key=lambda x: x[1]) # 根据元组中的第二个元素进行排序 print(a) # 输出[(4, 1), (1, 2), (3, 4)]
3、注意事项
lambda函数适用于简单的函数定义,如果需要较为复杂的函数,仍需使用def语句进行定义。