一、装饰器

前戏:

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的更多相关文章

  1. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  2. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  3. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  4. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  5. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  6. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  7. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

  8. Python基础学习一

    Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...

  9. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

随机推荐

  1. codeforces540E-树状数组求逆序对

    1-1e9的数据范围 但有1e5个区间 所以可以考虑把没有涉及到的区间缩成一个点 然后树状数组求逆序对 #include<bits/stdc++.h> #define inf 0x3f3f ...

  2. 067 Add Binary 二进制求和

    给定两个二进制字符串,返回他们的和(用二进制表示).案例:a = "11"b = "1"返回 "100" .详见:https://leetc ...

  3. IIS服务器访问网站出现403错误的解决方法

    最近用织梦做了一个网站,因为织梦会在一个文件夹中生成网站的静态页面,而我们单击某个栏目时,一般程序都是直接去寻找该文件夹中的index.html文件的,当服务器中默认的索引文件不包括index.htm ...

  4. Spring 顾问

    1.名称匹配方法切入点顾问 接口:ISomeService public interface ISomeService { public void doSome(); public void doSe ...

  5. @PropertySource

    功能 加载指定的属性文件(*.properties)到 Spring 的 Environment 中.可以配合 @Value 和 @ConfigurationProperties 使用. @Prope ...

  6. Echarts的重点

    官网中,主要看文档的”教程“和”配置项手册“这两部分 1 下载 引入js 页面放一个容器,一定要设宽高 创建对象:var myChart = echarts.init(document.getElem ...

  7. css3的transform ,2D变换

    transformtransform的中文翻译就是变换,改变,改观,转换的意思 在css中的主要作用就是对一个div或元素进行样式的改变. 他的属性(变换方式)有:平移,旋转,缩放,扭曲transla ...

  8. zuul的本地跳转

  9. Mind must be master of the body, strong mind can separate the body from its suffering.

    Mind must be master of the body, strong mind can separate the body from its suffering.意志是身体的主人,有顽强的意 ...

  10. Ubuntu 配置IP地址方法

    接到一客户的服务器,开机已启动发现是Ubuntu系统,当时有点郁闷了,心想没有配置过ubuntu系统,这客户还在旁边了,心里有点紧张了,于是开始上网寻找各种方法配置,最终将IP配置好,给客户上架调试通 ...