第一周python精进路线展望-1.6本周学习_第1页
第一周python精进路线展望-1.6本周学习_第2页
第一周python精进路线展望-1.6本周学习_第3页
第一周python精进路线展望-1.6本周学习_第4页
第一周python精进路线展望-1.6本周学习_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精进的Python单元开

(2)(1)

Context程序执行所需的上下文是用来表达程序运行状态的概念,对应内存状上下文是程序中断保留或恢复运行的重要状态信万物皆对上下文管理器使用with显式进入和退出分别对应 enter() exit()方cm.enter()执行开始,返回结果绑定给

<表达式<语句

<对 cm.exit 执行结束,退出上下withopenwithopen("python123.txt","r")asforlineinf:withopenwithopen("from_f.txt","r")asfi,\open("to_f.txt","w")asfo:forlineincm.enter()执行开始,返回结果绑定给

<表达式<语句

<对 cm.exit 执行结束,退出上下classdefinit(self,name):=namedefenterreturndefexit(selfexc_typeexc_valexc_tb):defwithDemoClass('Python123')asd:

classdefinit(self,name):=namedefenterreturndefexit(selfexc_typeexc_valexc_tb):defwithDemoClass('Python123')asd:

classdefinit(self,name):=namedefenterreturndefexit(selfexc_typeexc_valexc_tb):defwithDemoClass('Python123')asd:

classdefinit(self,name):=namedefenterreturndefexit(selfexc_typeexc_valexc_tb):defwithDemoClass('Python123')asd:

重 ()方重 exit()方classdefinit(self,name):=namedefenterreturndefexit(selfexc_typeexc_valexc_tb):defwithDemoClass('Python123')asd:

重 ()方重 exit()方 enter()返回classdefinit(self,name):=namedefenterreturndefexit(selfexc_typeexc_valexc_tb):defwithDemoClass('Python123')asd:

重 enter()方重 exit()方 enter()返回 exitwith特定对象包括:Python支持对象、自定义with自定义with兼容对象:重 enter() exit()方IteratorTypes容器Container:包含一组元素的数据类型,如全部组合数据类迭代器:容器之上的一种迭代,迭代方式以对象形式表迭代器定义了逐IteratorTypes迭代器是一个对象,常与for..in..配合使用,需要重载两个 definit(self,container):self.container=containerself.salt=len(self.container)defiter(self):returnselfdefnext(self):self.salt-=1ifself.salt>=di=foriinprint(i,end=',

8,7,6,5,4,3,2,definit(self,container):self.container=containerself.salt=len(self.container)defiter(self):returnselfdefnext(self):self.salt-=1ifself.salt>=di=foriinprint(i,end=',

1for..indefinit(self,container):self.container=containerself.salt=len(self.container)defiter(self):returnselfdefnext(self):self.salt-=1ifself.salt>=di=foriinprint(i,end=',

1for..in 2.类型内 definit(self,container):self.container=containerself.salt=len(self.container)defiter(self):returnselfdefnext(self):self.salt-=1ifself.salt>=di=foriinprint(i,end=',

1for..in 2.类型内 3.重 iter()方definit(self,container):self.container=containerself.salt=len(self.container)defiter(self):returnselfdefnext(self):self.salt-=1ifself.salt>=di=foriinprint(i,end=',

1for..in 2.类型内 3.重 iter()方4.重 next()方definit(self,container):self.container=containerself.salt=len(self.container)defiter(self):returnselfdefnext(self):self.salt-=1ifself.salt>=di=foriinprint(i,end=',

1for..in 2.类型内 重 iter()方重 next()方definit(self,container):self.container=containerself.salt=len(self.container)defiter(self):returnselfdefnext(self):self.salt-=1ifself.salt>=di=foriinprint(i,end=',1for..in 2.类型内部一个 重 iter()方重 next()方IteratorTypes迭代器非常常用,尤其是涉及管理一组数据的应用场 自定义数据类迭代器返回下一个元素的方式为优化程序内存使用提供了重要是迭代器的另一个角度诠释 都是迭代以逐一产生数据为角度,重点在于迭代逻辑的方便实只需要yield保留字即可定义并表达,不用GeneratorFunction函数 ,用来实现迭代逻任何包含yield语句的函数,都 函对于函数来说,yield和return功能接近,但不完全相defimportls=list(range(10))print(ls,end=",")returnforiinrange(10):

[0,1,2,3,4,5,6,7,8,[0,1,2,3,4,5,6,7,8,[0,1,2,3,4,5,6,7,8,[0,1,2,3,4,5,6,7,8,[0,1,2,3,4,5,6,7,8,[0,1,2,3,4,5,6,7,8,[0,1,2,3,4,5,6,7,8,[0,1,2,3,4,5,6,7,8,[0,1,2,3,4,5,6,7,8,[0,1,2,3,4,5,6,7,8,defimportls=list(range(10))print(ls,end=",")returnforiinrange(10):

defimportls=list(range(10))print(ls,end=",")foriinrange(max):yield

[0,1,2,3,4,5,6,7,8,990304295若想不断生成数据 函数需要存在迭代/循环过每次迭代/循环产生的结果以yield方式表函数要与for..in..配合使用,注意 是一种特殊迭代defimportls=list(range(10))print(ls,end=",")foriinrange(max):yield

Decorator需求:对于一个已有函数,如何更新其功能?(同名使用解决方式1:重新编写该函数,把功能补充进解决方式2Decoratorclassmethod()和staticmethod()内置defdefdeff=SyntacticSugar语法Python中采用@作为语法糖,辅助装饰器使任何语法糖表达def

语法糖不重要,重要的是装饰器函数,该函数以函数为由于可能存在装饰器迭代,每个装饰器函数需要返回一个函装饰器函数内

这是变量

这是变量对原函数功能的补充:测量时间、增加打印对原函数功能的调整:利用原函数运行结果,再次运算产生新的对原函数功能的Python3.5新增内置功能:async和awaita

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论