【python】函数式编程
No1:
函数式编程:即函数可以作为参数传递,也可以作为返回值
No2:
map()
函数接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回
No3:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
No4:
排序
No5:
函数作为返回值,每个返回值函数式不一样的(应该是对象地址不一样)
No6:
返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量
原因就在于返回的函数引用了循环变量,但它并非立刻执行,所以循环变量都是最后一个值
解决方案
这样f(i)就会立即执行
No7:
匿名函数
No8:
decorator在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。
@log
放到now()
函数的定义处,相当于执行了语句:
now = log(now)
3层嵌套的效果是这样的:
now = log('execute')(now)
No9:
偏函数:functools.partial
的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单
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' import sys import greet def test(): args = sys.argv if 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' % name def _private_2(name): return 'Hi,%s' % name def greeting(name): if len(name)>3: return _private_1(name) else: return _private_2(name)
运行结果
PS D:\wanglei\python> python hello.py
Hi,wa
No12:
安装常用模块
anaclnda地址:https://www.anaconda.com/download/#windows
安装好以后要把anaclnda的路径和其下的scripts路径添加到环境变量即可通过import 引入任何第三方模块
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2016-06-17 【设计模式】组合模式
2016-06-17 【设计模式】过滤器模式
2016-06-17 【设计模式】桥接模式
2016-06-17 【设计模式】适配器模式
2016-06-17 【设计模式】原型模式
2016-06-17 【设计模式】建造者模式