python的lambda与闭函数原理分析

本文深入探讨Python3中的lambda表达式与闭包函数,阐述它们的工作原理和使用场景。通过实例展示lambda如何在list、dict、tuple等数据结构中应用,并详细解释闭包的定义、特点,包括其在多级函数中的应用方式。
摘要由CSDN通过智能技术生成

一、 概述
本文分析python3的lambda与闭函数的实现原理,及多种用法示例
二、 lambda工作原理
1、 lambda定义
lambda 参数列表:1行代码表达式
参数列表,是一个函数的参数列表,可以有任意多个参数,参数可为任何类型
1行代码表达式,只能1行代码的表达式,不能多行代码,不同于java,没有{},begin/end等
2、 lambda可以出现的地方
list参数
dict参数
tuple参数
map函数等
。。。
3、 示例如下


# -*- coding: utf-8 -*-
"""
2018-05-09 09:43:18
作者: 刘明
"""
#用列表list参数表示lambda函数
def fun1(a,b):
      print('fun1=%s,a=%d,b=%d'%(fun1.__name__,a,b))
      return a+b

m1=[12,35,range(10,28),   
           fun1,
           lambda a,b: 
                       #print('lambda,a=%d,b=%d'%(a,b))
                       a+b+1  #lambda表达式只能一行代码
                 ,
           lambda a,b,c:a+b+c
           ]

print(list(m1[2]))
'''
输出如下
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]

'''
n=m1[3](2,3) #
print('n=%d'%(n))
'''
输出如下
fun1=fun1,a=2,b=3
n=5

'''
#将上面2行代码合成1行
print('m1[3](2,3)=%d'%(m1[3](2,3)))
'''
输出如下,与上面相同
fun1=fun1,a=2,b=3
n=5

'''
print('m1[4](2,3)=%d'%(m1[4](2,3)))
'''
输出如下,与上面相同
m1[4](2,3)=6

'''
print('m1[5](2,3,3)=%d'%(m1[5](2,3,3)))
'''
输出如下,与上面相同
m1[5](2,3,3)=8

'''
#用词典dict参数表示lambda函数
class Test1:
      def fun(self,a,b):
            print('Test1,id(self)=%d,a=%d,b=%d'%(id(self),a,b))
            return a+b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值