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()可以迭代出 ...
随机推荐
- python实现批量远程执行命令及批量上传下载文件
#!/usr/bin/env python # -*- coding: utf- -*- # @Time : // : # @Author : xuxuedong # @Site : # @File ...
- html select change事件触发
做小组内使用的一个简单工具,其中要实现的一个小功能是当某个下拉菜单的选择值改变时触发另一表单元素的属性变化.自然的想到使用select表单元素的onchange事件. 下拉菜单部分的代码如下: < ...
- 《四 spring源码》手写springmvc
手写SpringMVC思路 1.web.xml加载 为了读取web.xml中的配置,我们用到ServletConfig这个类,它代表当前Servlet在web.xml中的配置信息.通过web.xml ...
- unity3d + photon + grpc + nodejs + postgis/postgresql 游戏服务器设计
unity3d + photon + grpc + nodejs + postgis/postgresql 游戏服务器设计 最近做玩票性质的游戏项目,客户端技术是 unity3d 和 android. ...
- Android使用AchartEngine绘制曲线图
1.在布局文件中加入LinearLayout布局,如下: <LinearLayout android:id="@+id/chart" android:orientation= ...
- 总结一下WindowListener的用法
记录一下便于自己查看 1.WindowListener java.awt.event 接口 WindowListener public interface WindowListener extends ...
- git从无到有建立一个仓库并上传文件
第一步,创建仓库 登录自己的码云 第二步,本地操作 1.到你所要上传的文件夹中右键 选择git bash here 2.初始化项目 git init 3.连接远程仓库 刚才我们建立的时候的远程地址就 ...
- iOS优化
load妙用 aop面向切面编程 NSNumber Or Int @()适配64位 经过漫长时间的学习 你终于掌握了iOS大法 你找到了份iOS开发的工作 信誓旦旦的要开始你的coding生涯 老板对 ...
- 2017微软骇客马拉松精彩大回Fun:不一样的Hacker,一Young的Cool
丹棱君有话说:一年一度激动人心的骇客马拉松大会结束了!这场内部创意大比拼硕果累累,丹棱君准备好了 6 组 Cool 骇客的别 Young 作品——沉浸式销售工具如何能守得“云”开见月明?“骇客马拉松超 ...
- 什么是Office Online Server和SharePoint 2016
Microsoft Office Online Server是Microsoft Office Web Apps(OWA)服务器的下一个版本,最初于2012年发布.,可以下载Office Online ...