博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
又遇到Python另外一个问题:函数作参数,怎么传递参数?
阅读量:6773 次
发布时间:2019-06-26

本文共 645 字,大约阅读时间需要 2 分钟。

hot3.png

http://www.cnblogs.com/vamei/archive/2012/07/10/2582772.html

1. lambda

在展开之前,我们先提一下lambda。lambda是一种简便的,在同一行中定义函数的方法,其功能可以完全由def定义实现。lambda例子如下:

func = lambda x,y: x + y print func(3,4)

lambda以及之后的内容实际上生成一个函数对象(也就是函数)。该函数参数为x,y,返回值为x+y。该函数对象赋值给函数名func。func的调用与正常函数无异。

以上定义完全可以写成以下形式:

def func(x, y): return x + y

 

2. 函数可以作为参数传递

函数可以作为一个对象进行参数传递。函数名(比如func)即指向该对象,不需要括号。比如说:

def test(f, a, b): print 'test' print f(a, b) test(func, 3, 5)

我们可以看到,test函数的第一个参数f就是一个函数对象。我们将func传递给f,那么test中的f()所做的实际上就是func()所实现的功能。

这样,我们就大大提高了程序的灵活性。假设我们有另一个函数取代func,就可以使用相同的test函数了。如下:

test((lambda x,y: x**2 + y), 6, 9)

转载于:https://my.oschina.net/SamXIAO/blog/176959

你可能感兴趣的文章
华为java研发实习面试经验
查看>>
匿名方法、lambda
查看>>
马哥教育第十一天、十二天学习总结
查看>>
Redis消息队列
查看>>
Linux决心书
查看>>
LNMP架构 安装PHP
查看>>
怎么配置一台电脑
查看>>
中小型企业网络构建 OSPF 多区域配置
查看>>
Nginx中的基本环境配置说明
查看>>
pgsql 安装及日常操作
查看>>
bytes二进制文件类型
查看>>
eNSP分析OSPF分析stub区域与普通区域的区别,并验证stub区域的特性
查看>>
运维之路--- Just Do It !
查看>>
Mysql日志管理
查看>>
iptables防火墙
查看>>
机器学习中的概率模型和概率密度估计方法及VAE生成式模型详解之九(第5章 总结)...
查看>>
MATLAB编程与应用系列-第3章 矩阵运算(3)
查看>>
ups电源的使用寿命
查看>>
给阿里云的linux服务器添加swap分区
查看>>
Python3 面向对象
查看>>