python学习笔记
来源:互联网 发布:如何裁剪linux内核 编辑:程序博客网 时间:2024/06/15 14:28
闭包性
什么是闭包性
根据不同的配置信息得到不同的结果,即引用了自由变量的函数
下面我们来看两个函数
1.
def make_adder(addend): def adder(augend): return augend + addend return adderp = make_adder(23)q = make_adder(44)print p(100)print q(100)
123144
2.
def make_adder(addend): def adder(augend): return -augend return adderp = make_adder(23)q = make_adder(44)print p(100)print q(100)#结果是-100-100
这明明不就是一个函数么?仔细看,其实不一样,对于最里面的函数一个return addend+augend
另一个return -augend
很明显我们得到一个结论,p被赋予的值将传入内部函数作为引用来使用
匿名函数
匿名函数的使用
传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便
>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])[1, 4, 9, 16, 25, 36, 49, 64, 81]
关键字 lambda ,冒号前面的x表示参数
用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数
匿名函数作为返回值
def build(x, y): return lambda: x * x + y * y
偏函数
用法
1.int()函数可以把字符串转化为整数,当传入字符串时,int ()函数默认按十进制转换: >>>int('12345')
但int函数还提供额外的base参数,默认值为10.如果传入base参数,就可以做N进制的转换
12345>>>int('12345',base=8)
八进制转换为十进制,编写转换二进制的函数
5349
def int2(x,base=2): return int(x,base)
这样可以直接转化二进制;
2.functools.partial
就是用来创建一个偏函数的,不需要我们自己定义int2(),可以直接使用创建一个新的函数int2:
import functoolsint2=functools.partial(int ,base=2)
0 0
- 【python】:python学习笔记
- Python学习笔记-Python起步
- Python学习笔记-Python基础
- Python学习笔记-Python对象
- Python基本概念--Python学习笔记
- Python学习笔记:Python函数
- python学习笔记-python安装
- Python学习笔记--Python基础
- 【Python】python基础学习笔记
- python学习笔记3
- Python学习笔记
- Boost.Python学习笔记
- python学习笔记1
- python学习笔记2
- python学习笔记(2)
- Python学习笔记 Module
- Python学习笔记.
- python学习笔记(1)
- 搭建高可用mongodb集群(一)——配置mongodb
- 排序算法汇总(C++版)
- Java 9 尝鲜之交互式编程环境
- 修改Mysql数据库存储过程时无权限
- hdoj 1874 畅通工程续
- python学习笔记
- 当对象包含嵌套对象时,使用Spark SQL执行sql查询抛出scala.MatchError异常
- Caused by: java.lang.NoClassDefFoundError: org/aopalliance/aop/Advice
- Jmeter参数化
- win10 .net framework 3.5无法安装错误代码0x800F081F
- 为 Drupal 7 构建一个新主题
- IntelliJ Idea 常用快捷键列表
- 使用Anaconda安装TensorFlow
- 内部类之一