python日记----2017.7.27

装饰器:
什么事装饰器:
器即函数
装饰即修饰,意指为其他函数添加新功能
装饰器定义:本质就是函数,功能是为其他函数添加新功能
装饰器需要遵循的原则:
1.不修改被装饰函数的源代码(开放封闭原则)
2.为被装饰函数添加新功能后,不修改被修饰函数的调用方式
装饰器的组成:
装饰器=高阶函数+函数嵌套+闭包
高阶函数定义:
1.函数接收的参数是一个函数名
2.函数的返回值是一个函数名
3.满足上述条件任意一个,都可称之为高阶函数
无参装饰器=高级函数+函数嵌套
基本框架:
def timer(func):
def wrapper():
func()
return wrapper
加上参数:
def timer(func):
def wrapper(*args,**kwargs):
func(*args,**kwargs)
return wrapper
语法糖@:
@装饰器 #@timer就等同于
被装饰的函数(只是一个变量名)=装饰器(被装饰的函数)

   

时间: 2024-10-23 20:44:25

python日记----2017.7.27的相关文章

python日记----2017.7.26

命名空间 命名空间一共分为三种 全局命名空间 局部命名空间 内置命名空间(是Python解释器为我们提供的名字,好比'input,print'等) 三种命名空间之间的加载顺序: 加载顺序:内置命名空间(程序运行前加载)->全局命名空间(程序运行中:从上到下加载)->局部命名空间(程序运行中:调用时才加载) 三种命名空间之间的取值顺序: 在局部调用: 局部命名空间->全局命名空间-> 内置命名空间 在全局调用: 全局命名空间->内置命名空间作用域: 作用域就是作用范围,按照生效

python日记----2017.8.1

内置函数: 作业: 3.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sbname = ['alex','wupeiqi','yuanhao','nezha']def ad(l): return l[:len(l)]+'_sb'print(list(map(ad, name)))****************************************************************************4.用filter函数处理数字列表,将列表中所有

python日记----2017.8.2

有待补充: 处理文件,用户指定要查找的文件和内容将文件中包含要查找内容的每一行都输出到屏幕 def file(filename,find_l): with open(filename,'r',encoding='utf-8') as read_r: lines = read_r.readlines() for k,v in enumerate(lines): # print(k) if not v.find(find_l) == -1: yield k+1, v # else: # yield

python日记----2017.7.25

一丶函数 1.函数的定义def是关键字 definedef 之后加函数名 函数名 必须由字母下划线数字组成,不能是关键字,不能是数字开头 函数名还是要有一定的意义能够简单说明函数的功能():必须写函数的调用:函数名+括号2.返回值函数的返回值为None有三种情况1.不写返回值2.只写一个return3.return None (几乎不用)return的作用:结束一个函数的执行首先 返回值可以是任意的数据类型如果有返回值:必须要用变量接收才会有效果函数的返回值不为None,有返回值return x

python日记----2017.7.24

字符编码 1 以什么编码存的就要以什么编码取出 ps:内存固定使用unicode编码, 我们可以控制的编码是往硬盘存放或者基于网络传输选择编码 2 数据是最先产生于内存中,是unicode格式,要想传输需要转成bytes格式#unicode----->encode(utf-8)------>bytes拿到bytes,就可以往文件内存放或者基于网络传输#bytes------>decode(gbk)------->unicode 3 python3中字符串被识别成unicode py

python日记----2017.7.28

装饰器:开放封闭原则 1.对扩展是开放的 我们说,任何一个程序,不可能在设计之 初就已经想好了所有的功能并且未来不做 任何更新和修改.所以我们必须允许代码 扩展.添加新功能. 2.对修改是封闭的 就像我们刚刚提到的,因为我们写的一个函数,很有可能已经交付给其他人使用了,如果这个时候我们对其进行了修改,很有可能影响其他已经在使用该函数的用户. 装饰器完美的遵循了这个开放封闭原则. 3.带参装饰器:需要自己返回以函数作为参数的装饰器. def outer(flag): def timer(func)

量化分析师的Python日记【第1天:谁来给我讲讲Python?】

量化分析师的Python日记[第1天:谁来给我讲讲Python?]薛昆Kelvin优矿 001 号员工2015-01-28 15:48 58 144克隆 ###“谁来给我讲讲Python?” 作为无基础的初学者,只想先大概了解一下Python,随便编个小程序,并能看懂一般的程序,那些什么JAVA啊.C啊.继承啊.异常啊通通不懂怎么办,于是我找了很多资料,写成下面这篇日记,希望以完全初学者的角度入手来认识Python这个在量化领域日益重要的语言 ###一,熟悉基本 在正式介绍python之前,了解

python日记___name__ == '__main__'

在大多数编排得好一点的脚本或者程序里面都有这段if __name__ == 'main': ,虽然一直知道他的作用,但是一直比较模糊,收集资料详细理解之后与大家分享. 1.这段代码的功能 一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行.因此if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本

【第三组】冲刺会议 2017.7.27

冲刺会议 日期:2017.7.27 开发小组:Geomestry 冲刺经理:程立智 成员: 程立智 李明伦 郑昊 蔡镇泽 温志成 汪涵 成员:程立智 完成工作:实现多语言在app内即时切换,继续解决bug 所遇问题: 语言在app内即时切换时第一次点击没反应(已解决) 下一步工作: 继续实现各种界面的细节和前后端的联系,解决大家遇到的各种系统bug 成员:李明伦 完成工作:设计关卡内容 所遇问题:胜利条件不好写 下一步工作:继续设计关卡内容 成员:郑昊 完成工作:做主界面图片,option自适应