一、装饰器

前戏:

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. GYM 101933D(最短路、二分、dp)

    要点 非要先来后到暗示多源最短路,求最小的最大值暗示二分 二分内部的check是关键,dp处理一下,\(dp[i]\)表示第\(i\)笔订单最早何时送达,如果在ddl之前到不了则\(return\ 0 ...

  2. Avito Cool Challenge 2018-A. Definite Game(思维题)

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  3. 079 Word Search 单词搜索

    给定一个二维面板和一个单词,找出该单词是否存在于网格中.这个词可由顺序相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格.同一个单元格内的字母不允许被重复使用.例如,给定 二 ...

  4. C. Journey

    C. Journey time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...

  5. form-data、x-www-form-urlencoded、raw、binary的区别

    1.form-data: 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开.既可以上传键值对,也可以上传文件.当上传的字段是文件时 ...

  6. There is much opportunity for anyone willing to dedicate himself to his labors.

    There is much opportunity for anyone willing to dedicate himself to his labors.付出努力的人才有机会出人头地.

  7. CSS3学习-用CSS制作立体导航栏

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 【虚拟机-网络IP】虚拟机配置静态 IP 以后无法连接的解决办法

    问题描述 将虚拟机内部 IP 地址从动态获取改成静态 IP 以后,远程连接失败. 问题分析 Azure 虚拟机的内部 IP 默认为动态分配, 由 DHCP 服务自动分配, 在虚拟机的生命周期内, 该 ...

  9. Python 之excle的读写

    一.读取Excel 注:要先安装xlrd 代码如下: #-*- coding: utf8 -*-import xlrd   #引入读excle的类#fname = "reflect.xls& ...

  10. JAVA-WEB总结02

     1 什么是JavaBean?有何特征?    1)符合特定规则的类    2)JavaBean分二类: a)侠义的JavaBean .私有的字段(Field) .对私有字段提供存取方法(读写方法) ...