Python Lambda 闭包
lambda 函数是在没有名称的情况下定义的。 它在 Python 中也被称为匿名函数。
我们使用 def 关键字在 Python 中定义常规函数,而 lambda 关键字用于定义 lambda 函数。
本篇文章将介绍在 Python 中使用 lambda 函数和闭包。
在 Python 中使用 Lambda 函数的语法
Python 中 lambda 函数的语法是:
lambda arguments : expression
一个 lambda 函数只能有多个参数,但只能有一个表达式。 它计算表达式并返回结果。
在 Python 中使用 Lambda 函数
以下示例将给定值加 5 并打印结果。
total = lambda a: a+5
print(total(10))
输出:
15
添加多个参数并返回结果。
total = lambda a,b,c: a+b+c
print(total(10,15,20))
输出:
45
在上面的例子中,lambda a,b,c: a+b+c 是一个 lambda 函数,其中 a,b,c 是参数,a+b+c 是一个表达式。 计算表达式并显示在输出中。
lambda 函数没有名称,并分配给变量 total。
这一行:
total = lambda a,b,c: a+b+c
它等同于:
def total(a,b,c):
return a+b+c
在 Python 中使用闭包函数
在学习闭包之前,你必须先了解Python的嵌套函数和非局部变量的概念。
嵌套函数在另一个函数内部定义,并且可以访问封闭范围的变量。
此类非局部变量只能在其作用域内访问,而不能在 Python 的作用域外访问。
以下示例显示了访问非局部变量的嵌套函数。
def outerFunc(txt): # outer enclosing function
def innerFunc(): # nested function
print(txt)
innerFunc()
outerFunc("Hello World")
输出:
Hello World
如您所见,嵌套函数 innerFunc 访问了封闭函数 outerFunc 的非局部变量 txt。
闭包是一个函数对象,它可以记住封闭范围内的值,即使它们超出范围。
def outerFunc(txt): # outer enclosing function
def innerFunc(): # nested function
print(txt)
return innerFunc
myFunc = outerFunc("Hello World")
myFunc()
输出:
Hello World
在此示例中,嵌套函数返回 innerfunc()
函数而不是调用它。 outerFunc()
函数使用文本 Hello World 调用并分配给变量 myFunc。
并且在调用 myFunc()
时,该值在作用域外被记住。
如果删除原始函数,封闭范围内的值仍将被记住。
del outerFunc
myFunc()
输出:
Hello World
下面是在Python中使用lambda函数和闭包的简单演示。
def sum(x):
def total():
calc = lambda x: x+5
print(calc(x))
return total
myFunc = sum(5)
myFunc()
输出:
10
现在你应该知道如何在 Python 中使用 lambda 函数和闭包了。 我们希望您觉得本篇文章对您有所帮助。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串