摘要: 装饰器 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。 函数对象有一个__name__属性,可以拿到函数的名字: 现在,假设我们要增强now()函数的功能,比如,在函数调用前后自动打印日志,但又不希望修改now()函数的定义,这种在代码运行期间动态增加功能的方式, 阅读全文
posted @ 2017-11-18 16:58 TimeTree 阅读(162) 评论(0) 推荐(0) 编辑
摘要: lambda 匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。 在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数: 通过对比可以看出,匿名函数lambda x: x 阅读全文
posted @ 2017-11-18 16:26 TimeTree 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 我们来实现一个可变参数的求和。通常情况下,求和的函数是这样定义的: 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数: 调用lazy_sum()时,返回求和函 阅读全文
posted @ 2017-11-18 12:20 TimeTree 阅读(594) 评论(0) 推荐(0) 编辑
摘要: map 接收一个函数,和一个可迭代对象作为参数,将函数应用到可迭代对象中的每一项。并把结果新的iterator结果返回。 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现如下: reduce 阅读全文
posted @ 2017-11-18 11:24 TimeTree 阅读(276) 评论(0) 推荐(0) 编辑