Python基础学习总结__Day4

一、装饰器

前戏:

1.函数即变量

(1)函数名为‘门牌号’即内存地址,加括号开始调用

(2)没有变量调用将清空内存

(3)匿名函数(lambda函数):没有‘门牌号’,需要赋值给变量,否则将会被清空

2.高阶函数

(1)将函数名作为实参传给另一个函数(不改变源代码的情况下添加功能)

(2)将函数名作为另一个函数的返回值(不改变调用方式)

3.嵌套函数:在函数体内用def再定义一个函数

正餐:

扫描二维码关注公众号,回复: 6469340 查看本文章

1、装饰器的作用:在不改变源代码和调用方式的情况下为原程序添加功能,以提高扩展性

2、装饰器的构成:嵌套函数+高阶函数

 1 #Author:Barry
 2 import time
 3 
 4 def timer(func):
 5     def dec(*args):
 6         stat_time = time.time()
 7         func(*args)
 8         stop_time = time.time()
 9         print('time is %s'%(stop_time-stat_time))
10     return dec
11 
12 @timer #test = timer(test) = dec
13 def test1():
14     time.sleep(3)
15     print("in this test1")
16 
17 @timer #test = timer(test) = dec
18 def test2(name,age):
19     time.sleep(3)
20     print("in this test2",name,age)
21     
22 test1()
23 test2("Barry",22)

二、迭代器

1.提前存在数据,并直接生成所有数据

2.列表生成式

3.可迭代对象:可用for循环

4.迭代器对象:可被next()调用并不断返回下一个值的对象

三、生成器

1.在调用时才生成相应的数据,可节省内存

2.方法:

(1)Next:执行下一步

(2)Send:可向yield传参

斐波那契数列:

 1 #Author:Barry
 2 def fib(max):
 3     a,b,n = 0,1,0
 4     while n<max:
 5         yield b
 6         a,b = b,a+b
 7         n = n + 1
 8     return '牛逼'
 9 f = fib(10)
10 while True:
11     try:
12         i = next(f)
13         print(i)
14     except StopIteration as ex:
15         print(ex.value)
16         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)

六、合理目录结构

 

猜你喜欢

转载自www.cnblogs.com/TheFlash-Bar/p/11022103.html
今日推荐