Python函数(二)

匿名函数

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的值。

原文地址:https://www.cnblogs.com/liudemeng/p/12245816.html