python支持函数式编程吗_【python】函数式编程

No1:

函数式编程:即函数可以作为参数传递,也可以作为返回值

20180617115844912186.png

No2:

map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回

20180617115845289154.png

No3:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

20180617115845486427.png

No4:

排序

20180617115846037229.png

No5:

函数作为返回值,每个返回值函数式不一样的(应该是对象地址不一样)

20180617115846174930.png

No6:

返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量

原因就在于返回的函数引用了循环变量,但它并非立刻执行,所以循环变量都是最后一个值

解决方案

20180617115846347788.png

这样f(i)就会立即执行

No7:

匿名函数

20180617115846508927.png

20180617115846633932.png

No8:

decorator在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。

20180617115846784328.png

20180617115846944491.png

@log放到now()函数的定义处,相当于执行了语句:

now = log(now)

20180617115847142740.png

3层嵌套的效果是这样的:

now = log(‘execute‘)(now)

No9:

偏函数:functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单

20180617115847296067.png

No10:

一个.py文件就称之为一个模块(Module)

每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是它所在的包名

系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块

No11:

模块调用

#!/usr/bin/env python3#可以让这个hello.py文件直接在Unix/Linux/Mac上运行#-*- coding:utf-8 -*-

‘a test module‘

#任何模块代码的第一个字符串都被视为模块的文档注释

__author__ = ‘Wang Lei‘

importsysimportgreetdeftest():

args=sys.argvif len(args)==1:print(‘Hello,world‘)elif len(args)==2:print(‘Hello,%s!‘ % args[1])else:print(‘Too many arguments!‘)if __name__==‘__main__‘:#test()

print(greet.greeting(‘wa‘))

#!/usr/bin/env python3#-*- coding:utf-8 -*-

‘a test module‘

__author__ = ‘Wang Lei‘

def_private_1(name):return ‘Hello,%s‘ %namedef_private_2(name):return ‘Hi,%s‘ %namedefgreeting(name):if len(name)>3:return_private_1(name)else:return _private_2(name)

运行结果

PS D:\wanglei\python> python hello.py

Hi,wa

No12:

安装常用模块

原文地址:https://www.cnblogs.com/anni-qianqian/p/9112334.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值