匿名函数
Python中使用lambda来创建匿名函数。
- lambda只是一个表达式,函数体简单
- lambda是一个表达式,而不是一个代码块,仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
- lambda一般只能写一行。
语法格式:
lambda [arg1, [, arg2, ]]:expression
示例代码:
result = lambda arg1, arg2 : arg1 + arg2
# 调用result函数
print(result(10, 20))
return关键字
return关键字用于函数返回值,如果没有返回值就返回None。
示例代码:
def result(arg1, arg2):
total = arg1 + arg2
return total
res = result(10, 20)
print(res)
变量作用域
在所有的编程语言当中,都存在变量的作用域,一个程序的变量并不是在哪个位置都可以访问的。
全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外拥有全局作用域。
函数会优先使用局部变量,局部没有变量则去找全部变量。
示例代码:
total = 10 # 全局变量
def result(arg1, arg2):
# 局部变量total
total = arg1 + arg2
print("函数内的局部变量是", total)
return total
result(10, 20)
print("函数外是全局变量", total)
global关键字
- 将变量定义为全局变量,可以通过定义为全局变量,实现在函数内部修改变量值。
- 一个global关键字可以同时定义多个变量,如global x,y,z
示例代码:
num = 10
def set_num_value():
# 使用global声明全局变量
global num
num = 30
return num
def print_num():
# 未使用global关键字
print(num)
print(set_num_value())
print(num)
可以看到在使用global关键字之后,num的值为30,已经经过global关键字在函数内部修改了num的值。