day19 笔记

叠加多装饰器加载与运行:
def deco1(func):
def wrapper1(*args,**kwargs):
print("第一个")
res = func(*args,**kwargs)
return wrapper1
def deco2(func):
def wrapper2(*args,**kwargs):
print("第二个")
res = func(*args,**kwargs)
return wrapper2
def deco3(x):
def otter3(func):
def wrapper3(*args,**kwargs):
print("第三个")
res = func(*args,**kwargs)
return wrapper3
return otter3
#加载顺序自下而上
@deco1 #wrapper1
@deco2 #wrapper2
@deco3(111) #wrapper3
def index(x,y):
print(x,y)

#执行顺序自上而下
index(1,2)

生成器高级玩法yield挂起函数
def dog (name):
print("狗哥%s准备就绪"%name)
while True:
x = yield 111#shit 111

print("狗哥吃了%s"%x)
g = dog("xxx")
g.send(None) # next(g) g.send方法使用来给yield传参数的

print("==================================》")


g.send("shit")
g.send("shit")
g.close() #关闭生成器,无法再给生成器传值
g.send("shit")
三元表达式:条件成立 if 条件 else 条件不成立
def max2(x,y):
if x > y:
return x
else:
return y

res = max2(1,2)
------------------------------------------------
res = x if x > y else y

生成式:是python为我们提供的一系列简化工具
列表生成式是为我们快速生成一个列表的一个方法
结构是 列表名 = [追加的元素 元素获取的途径|方法]
egg_list=[]
for i in range(10):
egg_list.append('鸡蛋%s' %i)
----------------------------------------------------
egg_list=['鸡蛋%s' %i for i in range(10)]
字典 集合等生成式
# keys=['name','age','gender']
# dic={key:None for key in keys}
# print(dic)
名 = (追加 获取的方式)得到的是一个生成器表达式
函数递归调用:是函数嵌套调用的一种特殊形式
#具体是指:在调用函数过程中又直接或者间接的调用到了本身 就是循环
#需要强调的一点是递归不能一直调用下去,必须在满足某种条件时停止递归
# 递归的两个阶段:
# 回溯:一层层的调用下去
# 递推:满足某种结束条件,结束递归调用,然后一层层返回

 

 


with open('笔记.txt',mode='rt',encoding='utf-8') as f:
----------------------------------------
res = 0
for line in f:
res +=len(line)

---------------------------
res = sum((len(line) for line in f))
print(res)

posted @ 2020-03-25 21:30  TopJocker  阅读(86)  评论(0编辑  收藏  举报