Python基础学习总结__Day4
一、装饰器
前戏:
1.函数即变量
(1)函数名为‘门牌号’即内存地址,加括号开始调用
(2)没有变量调用将清空内存
(3)匿名函数(lambda函数):没有‘门牌号’,需要赋值给变量,否则将会被清空
2.高阶函数
(1)将函数名作为实参传给另一个函数(不改变源代码的情况下添加功能)
(2)将函数名作为另一个函数的返回值(不改变调用方式)
3.嵌套函数:在函数体内用def再定义一个函数
正餐:
1、装饰器的作用:在不改变源代码和调用方式的情况下为原程序添加功能,以提高扩展性
2、装饰器的构成:嵌套函数+高阶函数
#Author:Barry
import time def timer(func):
def dec(*args):
stat_time = time.time()
func(*args)
stop_time = time.time()
print('time is %s'%(stop_time-stat_time))
return dec @timer #test = timer(test) = dec
def test1():
time.sleep(3)
print("in this test1") @timer #test = timer(test) = dec
def test2(name,age):
time.sleep(3)
print("in this test2",name,age) test1()
test2("Barry",22)
二、迭代器
1.提前存在数据,并直接生成所有数据
2.列表生成式
3.可迭代对象:可用for循环
4.迭代器对象:可被next()调用并不断返回下一个值的对象
三、生成器
1.在调用时才生成相应的数据,可节省内存
2.方法:
(1)Next:执行下一步
(2)Send:可向yield传参
斐波那契数列:
#Author:Barry
def fib(max):
a,b,n = 0,1,0
while n<max:
yield b
a,b = b,a+b
n = n + 1
return '牛逼'
f = fib(10)
while True:
try:
i = next(f)
print(i)
except StopIteration as ex:
print(ex.value)
break
简单并发:
#Author:Barry
import time
def consumer(name):
print('%s准备吃包子了'%name)
while True:
baozi = yield
print('%s包子来了,%s快来吃包子'%(baozi,name))
# c = consumer('Barry')
# c.__next__()
# c.send('韭菜馅')
def producer(name):
c = consumer('A')
c2 = consumer('B')
c.__next__()
c2.__next__()
print('开始做包子')
for i in range(10):
time.sleep(1)
print('做了一个包子,分了两瓣')
c.send(i)
c2.send(i)
producer('Barry')
四、内置函数简介

五、Json序列化
功能:不同语言之间数据系统交互
序列化:
#Author:Barry
import json
info = {
'name':'Barry',
'age': 22
}
f = open('test','w')
# print(json.dumps(info))
f.write(json.dumps(info))
反序列化:
#Author:Barry
import json
f = open('test','r')
data = json.loads(f.read())
print(data)
六、合理目录结构

Python基础学习总结__Day4的更多相关文章
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Python 基础学习 总结篇
Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...
- (一)python基础学习
根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...
- python基础学习(起步)
目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
- Python基础学习一
Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...
- Python基础学习五
Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...
随机推荐
- phpcms9.6 注入分析
phpcms9.6 注入分析 漏洞促发点\phpcms\modules\content\down.php $a_k = trim($_GET['a_k']); if(!isset($a_k)) sho ...
- 详解window.history
http://blog.csdn.net/woxueliuyun/article/details/51075272
- 【干货分享】大话团队的GIT分支策略进化史
封面 作为一名85后的技术男,一转眼10年过去了(一不小心暴露了年龄,虽然我叫18岁fantasy),亲手写代码已经是5年前了,目前主要负责公司的软件产品的规划和设计(所以最近写的东西也主要与设计和产 ...
- 看懂物联网fr
看懂物联网 2015-10-11 物联网世界 1.第三次IT浪潮 互联网时代的特征是信息驱动了生产力,无论众包.订单式生产这些理论:还是B2C.O2O各类业务模式:归根结底,是信息优化了生产关 ...
- watir 的api在线文档
http://rubydoc.info/gems/watir-webdriver/frames http://rdoc.info/gems/watir-webdriver/frames http:// ...
- 洛谷P1781 宇宙总统
https://www.luogu.org/problem/show?pid=1781 高精比较大小: #include<iostream> #include<cstdio> ...
- 结合源码看nginx-1.4.0之nginx内存管理详解
目录 0. 摘要 1. nginx内存结构设计 2. nginx内存数据结构 3. nginx内存管理原理 4. 一个简单的内存模型 5. 小结 6. 参考资料 0. 摘要 内存管理,是指软件运行时对 ...
- SPEC CPU 使用简介
SPEC CPU2000简介 SPEC CPU2000是由标准性能评价机构“The Standard Performance Evaluation Corporation (SPEC)”开发的用于评测 ...
- ios 身份证照片识别信息
一个近乎完整的可识别中国身份证信息的Demo就问问你霸气不
- ionic 2 起航 控件的使用 客户列表场景(四)
接下来,我们的客户列表要怎么刷新数据呢? 我们不会安卓开发,不会ios开发,没关系,我们还有ionic 2.ionic 2的控件 Ion-refresher 轻松帮我们搞掂. <!--下拉刷新- ...