python 高阶函数(二)

原创 2016年06月07日 15:32:18

匿名函数

python中用关键字lambda表示匿名函数,匿名函数只有一条语句,很简洁也没有函数名
lambda 参数 : 返回值
lambda可以不传参数,但必须要有返回值
>>> f=lambda x,y:x+y
>>> f(1,2)
3

>>> def f(x, y):
...    return x+y

以上两个函数是等价的

装饰器

装饰器从字面上来说就是在不改变被装饰对象的前提下修饰被装饰对象,对于已经定义好的的函数,如果想要在不修改原函数的前提下增加原函数的功能,就可以用到装饰器
>>> def log(func):
...     def wrapper(*args, **kw):
...         print('Hello')
...         return func(*args, **kw)
...     return wrapper
...
>>> @log
... def who():
...     print('python')
...
>>> who
<function log.<locals>.wrapper at 0x10436a1e0>
>>> who()
Hello
python
>>>

装饰器实质上是高阶函数,接收一个函数作参数并返回一个新的函数,调用
>>> @log
... def who():
...     print('python')
...
其实相当于执行这条语句
>>> who=log(who)

偏函数

偏函数实质上是使用python 自带的functools 模块中的Partial function 来修改已有的带有默认参数的函数的默认参数并返回一个新的函数
>>> import functools
>>> int2=functools.partial(int, base=2)
>>> int2('10111')
23





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Python学习笔记 - 高阶函数

高阶函数英文叫Higher-order function。什么是高阶函数?我们以实际代码为例子,一步一步深入概念。 变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用...

python基础2之高阶函数

###################################高阶函数 1.高阶函数       变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,...

【Python模块】functools —— 作用于可调用对象的高阶函数集合

英文原文出自:https://docs.python.org/2/library/functools.html     functools 是一系列高阶函数的集合,这些函数可以接受其他函数作为参数或者...

分享一道伯克利 CS 61A 关于高阶函数的一道Python作业题(1)

The logician Alonzo Church invented a system of representing non-negative integers entirely using fu...

Python 高阶函数 : map( ) ; reduce( )

Python 高阶函数 : map( ) ; reduce( )本文中所有代码均在IDLE中实现 如果你有任何意见或者建议,希望你能写在评论区map( )map(A,B)接收两个参数,参数A是一个...

2017.6.27 python学习 高阶函数

def hello(name): print ('hello',name) def word(name): print ('Word',name)1.变量可以指向函数h = hello...

Python高阶函数:filter、map、reduce、lambda

Python内置了一些非常有趣但非常有用的函数, 充分体现了Python的语言魅力!filter(function, sequence):对sequence中的item依次执行function(ite...

Python3 高阶函数

把函数作为参数下面是一个简单的高阶函数:def add(x, y, f): return f(x) + f(y)如果传入abs作为参数f的值:add(-5, 9, abs)根据函数的定义,函数...

Python__高阶函数

高阶函数

python学习之高阶函数

#####高阶函数####### 1.函数 函数本身也可以赋值给变量,即:变量可以指向函数。 In [91]: abs(-10) Out[91]: 10 In [92]: abs Ou...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)