当前位置: > python教程 > python高级教程 >

python匿名函数定义和作用
栏目分类:python高级教程   发布日期:2019年04月22日 16:44:45   浏览次数:

 
1、定义
当调用函数时,有时不需要显示定义好一个函数,直接传入一个匿名函数更为方便。
Python可使用lambda表达式创建匿名函数。其基本语法为
#   lambda参数1[,参数2,……。参数n]:表达式
 
首先是关键字lambda,然后是参数,接下来通过冒号隔开,冒号之后是表达式。lambda 函数有如下特点:
· lambda只是一个表达式,函数体比def简单很多;
· lambda的主体有且只有一个表达式,而不是代码块;
· lambda函数拥有自己的命名空间,不能访问自己参数列表之外或者全局命名空间里的
参数。
 
使用匿名函数可实现两个数字求和功能,即
!/usr/bin/env python 
func = lambda x, y:x+y 
print( func ( 1 ,2)
此外,匿名函数由于没有函数名称,因此可避免函数名称的冲突。匿名函数同样可以作为返回值返回。
 
2、偏函数
 
int( )函数功能是把字符串转换成整数,即
>>> int ( 1001')
1001
实际上, int()函数还提供了另外一个参数base, base的值表示转换的进制,其默认值,为10,因此默认按照十进制进行转换,可以添加base=2尝试进行二进制转换,即
>>> int ( 1001' , base= 2)
9
添加base =2参数后, int( )函数按照二进制成功将1001转换为9,
如果需要转换二进制字符串的数量非常庞大,则每次转换都需要添加参数base =2,非常繁琐。
因此可以构建一个新的函数int2( ),将base=2设置为默认参数,即
def int2( num , base= 2) 
    return int( num, base)
这样,使用新的函数int2( )只需将被转换的字符串作为参数传入即可实现转换。
>>> int2('0011)
3
>>> int2('1111')
15

 
对于新创建的函数int2( ), Python提供的functoos. partial可以更方便地实现,即
>>> import functools
>>> int2 = functools. partial ( int, base= 2)
>>> int2( '0011')
3
>>> int2( '1111')
15
functools. partial的作用是把一个函数其中的一些参数设置为默认值,返回一个新的函数,调用这个新的函数更加简单,体现了Python语言简洁的宗旨。

相关热词:

热门关键词
python字符串
     
python教程 python爬虫 python人工智能 Python+大数据 python问答