notes for lxf(三)
纯函数式编程是没有变量的,只要输入确定输出就确定 指高度抽象的编程范式
特点 函数本身可以作为参数传入 或者允许返回一个函数
Higher-order function 一个函数可以接收另一个函数作为参数
函数名其实就是指向函数的变量
map(func_name, Iterable) 序列的每一个元素依次传参给func 并将结果作为新的Iterator返回
reduce(func_name, 序列)func接收两个参数 并把结果继续和序列的下一个元素做累积计算
map的一个参数的函数只有一个参数 reduce的第一个参数函数有两个参数
filter(func, sequence)sequence元素一次作用func根据返回的True False 保留 最后返回一个Iterator
is 判断指向是否同一个 ==判断值是否相等
sorted(iterable, /, *, key=None, reverse=False)按照key函数返回结果进行排序 reverse反转 key作用的是序列的每一个元素
闭包 返回一个函数 返回的这个函数引用了外部函数的变量
返回闭包时 返回函数不要引用任何循环变量 或者后续会发生变化的变量
lambda匿名函数只能有一个表达式不用写return 返回值是表达式的结果
dir()查看对象有哪些属性 id()查看内存地址 函数名相当于一个内存地址 加了括号就相当于调用 .__name__看函数名字 .__iter__看是否可迭代
装饰器 代码运行期间动态增加功能的方式 本身是一种闭包但decorator的形参必须是函数
嵌套函数 函数要被调用才会执行 即出现func()才会执行
闭包 当调用外部函数时 返回的结果是内部函数的内存地址 调用内部函数才会返回运算结果
闭包 外部函数()()返回的内部函数的运算结果 相当于第一次调用外部函数 第二次调用内部函数
其实装饰器就相当于 装饰器的外部函数()() 就内部函数执行结果 装饰器函数如果是三层嵌套就相当于最外部函数()()() 两层嵌套就相当于外部函数()() 第几个括号有参数就第几次调用传参
装饰之后 相当于被装饰的函数指向了装饰器的内部函数(返回函数) 所以其函数名.__name__实际就是内部函数
import functools
@functools.wraps(func)是把原始函数的__name__等属性还回去 定义在内部函数的前面 即传参是被装饰函数的那个函数里面
如果打印函数 会把函数的None打印出来 eg:print(func())
print 和return区别 函数的返回值return语句只有在打印的时候才把值打出来
x = func() 指x接收函数的返回值 并执行一遍函数 return func() 指返回func()函数的返回值 并没有说要打印返回值哦 并执行一遍func()
如果装饰器本身需要传参 就多一层嵌套函数 该参数和被装饰函数 算是两个位置参数一起传给装饰器函数
偏函数 new = functools.partials(old, kw) 固定原函数的部分参数 创建新函数
if __name__ = __main__ : 该模块被执行时为真 被导入时为假
前缀 _ 是private函数或变量 一般在公开函数中调用私有函数
def str2float(s):
    DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
def char2num(string):
        return DIGITS[string]
index = [i for i, x in enumerate(s) if x == '.']
    if len(index) > 1:
        raise TypeError("类型错误,非有效数字")
    if len(index) == 1:
        index = index[0]
        front = s[:index]
        end = s[index + 1:]
        return reduce(lambda x, y: x * 10 + y, map(char2num, front)) + (reduce(lambda x, y: x / 10 + y, map(char2num, end[::-1]))) / 10
    else:
        return reduce(lambda x, y: x * 10 + y, map(char2num, s))
notes for lxf(三)的更多相关文章
- notes for lxf(五)
		类和实例的绑定方法和属性 实例绑定 obj.func = func obj.func(obj, &argv) obj.func = MethodType(func, obj) 第一个参数是方 ... 
- notes for lxf(四)
		类名首字母通常大写 创建实例 类名 +() __init__方法 创建实例时把一些属性绑上去 __init__方法第一参数永远是self 表示船舰的实例本身 类是实例的模板 实例是一个一个具体的对象 ... 
- notes for lxf(二)
		函数 abs()绝对值 max()返回最大值 raise 后接异常类 引发异常 函数返回多个值其实就是返回一个tuple 函数默认返回None 如果有必要检查参数类型用isinstance() typ ... 
- notes for lxf(一)
		python代码不能用word和windows自带的记事本保存 word保存的不是纯文本文件 记事本会在文件开始的地方加上特殊字符(UTF-8 BOM) 交互模式启动了解释器 直接运行.py文件是一次 ... 
- Linux时间子系统之(六):POSIX timer
		专题文档汇总目录 Notes:首先讲解了POSIX timer的标识(唯一识别).POSIX Timer的组织(管理POSIX Timer).内核中如何抽象POSIX Timer:然后分析了POSIX ... 
- Linux kernel的中断子系统之(八):softirq
		返回目录:<ARM-Linux中断系统>. 总结:中断分为上半部和下半部,上半部关中断:下半部开中断,处理可以延迟的事情.下半部有workqueue/softirq/tasklet三种方式 ... 
- Core Services层
		本文转载至 http://jingyan.baidu.com/article/cdddd41c57360853cb00e124.html Core Services层是系统很多部分的基础部分,也许应用 ... 
- django notes 三:Template 的查找
		django 中有 2种 Template Loader django.template.loaders.filesystem.Loader django.template.loaders.app_d ... 
- Android Weekly Notes Issue #229
		Android Weekly Issue #229 October 30th, 2016 Android Weekly Issue #229 Android Weekly笔记, 本期内容包括: 性能库 ... 
随机推荐
- Exp6 信息收集与漏洞扫描
			一.实践过程 1.信息收集 1.1 通过DNS和IP查询目标网站的信息 (1)whois命令用来进行域名注册信息查询,可查询到3R注册信息,包括注册人的姓名.组织和城市等信息. whois baidu ... 
- socket(TCP-粘包)通讯之Python实现
			所谓粘包问题主要还是C/S两端数据传输时 因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的 根本原因:粘包是由TCP协议本身造成的,TCP为提高传输效率,发送方往往要收集到足够多 ... 
- Visual Studio 使用 Web Deploy 发布远程站点
			Ø 简介 本文介绍 Visual Studio 如何使用 Web Deploy发布远程站点,有时候我们开发完某个功能时,需要快速将更改发布至服务器.通常 Visual Studio 可以采用两种方式 ... 
- httpclient用getStatusCode
			TP 定义的状态代码的值(.net HttpWebResponse.HttpStatusCode 成员名称 说明 Continue 等效于 HTTP 状态 100.Continue 指示客户端可能 ... 
- Javamail pop3连接QQ邮箱遇到最深的坑
			在使用pop3邮箱连接QQ邮箱接受邮件的时候遇到如下错误 Login fail. A secure connection is requiered(such as ssl) 此时按照错误提示添加如下配 ... 
- asp.net webapi 获取报文体的问题
			用这种方法: var data=await Request.Content.ReadAsStringAsync(); 一般都无法获取到内容.原因是内部的流对象已经到了最后面.要获取到里面的需要把流的位 ... 
- UTF-8字符C2A0引起的问题
			今天遇到一个问题: 网页上的一段文字中有几个空格,把这段文字当作文件名称保存为一个windows系统下的文件后,文件名中本来是空格的地方变成了问号,另外一个C#程序打开这个文件,也提示找不到文件. 初 ... 
- 实验吧 deeeeeeaaaaaadbeeeeeeeeeef-20
			题目描述: 图片是正确的吗? 解题思路: 这道题很有意思,常规的隐写思路没有线索,结果问题出现在照片的分辨率上,tEXtSource iPhone 5的后置摄像头是3264×2448的分辨率,前置摄像 ... 
- COGS2187 [HZOI 2015] 帕秋莉的超级多项式
			什么都别说了,咱心态已经炸了... question 题目戳这里的说... 其实就是叫你求下面这个式子的导函数: noteskey 其实是道板子题呢~ 刚好给我们弄个多项式合集的说... 各种板子粘贴 ... 
- 生成透视列之COALESCE
			临时表#t,数据如下: 实现如下数据: 方法一: declare @sql0 varchar(MAX)select @sql0 = isnull(@sql0 + '],[' , '') + Provi ... 
