当前位置: 首页 > news >正文

网站系统怎么做的网络维护人员是做什么的

网站系统怎么做的,网络维护人员是做什么的,营销网站分为哪几种,网站备案可以变更吗生成器与迭代器 生成器生成器定义为什么要有生成器创建生成器的方式一(生成器表达式) 创建生成器的方式二(生成器函数)生成器函数的工作原理总结 迭代器概念可迭代对象和迭代器区别for循环的本质创建一个迭代器 动态添加属性和方法运行过程中给对象、类添加属性和方法types.Met… 生成器与迭代器 生成器生成器定义为什么要有生成器创建生成器的方式一(生成器表达式) 创建生成器的方式二(生成器函数)生成器函数的工作原理总结 迭代器概念可迭代对象和迭代器区别for循环的本质创建一个迭代器 动态添加属性和方法运行过程中给对象、类添加属性和方法types.MethonType的使用给类动态添加静态方法以及类方法 __slots__ 的作用 生成器 生成器定义 在Python中一边循环一边计算的机制称为生成器generator 为什么要有生成器 列表所有数据都在内存中如果有海量数据的话将会非常耗内存。 如仅仅需要访问前面几个元素那后面绝大多数元素占用的空间 都白白浪费了。 如果列表元素按照某种算法推算出来那我们就可以在循环的过程 中不断推算出后续的元素这样就不必创建完整的list从而节省大 量的空间。 简单说 时间换空间想要得到庞大的数据又想让它占用空间少那就用生成器 延迟计算需要的时候再计算出数据 创建生成器的方式一(生成器表达式) 生成器表达式很简单只要把一个列表推导式的 [] 改成 () 就创建 了一个生成器(generator) L [x * x for x in range(10)] print(L) g (x * x for x in range(10)) print(g)[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] generator object at 0x1006e8520 创建 L 和 g 的区别仅在于最外层的 [] 和 () L 是一个list而 g 是一个 generator。 创建生成器的方式二(生成器函数) 生成器函数 如果一个函数中包含 yield 关键字那么这个函数就不再是一个普通函数调用函数就是创建了一个生成器generator对象。生成器函数其实就是利用关键字 yield 一次性返回一个结果阻塞重新开始。 生成器函数的工作原理 生成器函数返回一个迭代器for循环对这个迭代器不断调用 next() 函数不断运行到下一个 yield 语句一次一次取得每一个返回值直到没有 yield 语句为止最终引发 StopIteration 异 常。 yield 相当于 return 返回一个值并且记住这个返回的位置下次迭代时代码从 yield 的下一条 语句(不是下一行)开始执行。 send() 和 next() 一样都能让生成器继续往下走一步下次遇到 yield 停但 send() 能传一个 值这个值作为 yield 表达式整体的结果 #codingutf-81. 函数有了yield之后调用它就会生成一个生成器 2. yield作用程序挂起返回相应的值。下次从下一个语 句开始执行。 3. return在生成器中代表生成器种植直接报错 StopIeratation 4. next方法作用唤醒并继续执行 def test():print(start)i0while i3:temp yield i #下次迭代时代码从yield的下一条语句(不是下一行)开始执行print(ftemp:{temp})i 1print(end)return doneif __name__ __main__:a test()print(type(a))print(a.__next__())print(a.__next__())print(a.__next__()) # next(a) 一样print(a.__next__()) # 抛出异常StopIteration总结 什么是生成器 生成器仅仅保存了一套生成数值的算法并且没有让这个算 法现在就开始执行而是我什么时候调它它什么时候开始 计算一个新的值并给你返回。 迭代器 概念 1 迭代是Python最强大的功能之一是访问集合元素的一种方式。 2 迭代器是一个可以记住遍历的位置的对象。 3 迭代器对象从集合的第一个元素开始访问直到所有的元素被访问完结束。 4 迭代器只能往前不会后退。 5 迭代器有两个基本的方法 iter() 和 next() 可迭代对象和迭代器区别 1 一个实现了 iter 方法的对象称为可迭代对象Ieratable 2 一个实现 next 方法并且是可迭代的对象称为迭代器Iterator 即实现了 iter 方法和 next 方法的对象就是迭代器。 ⚠️生成器都是 Iterator 对象但 list 、 dict 、 str 虽然是 Iterable可迭代对 象 却不是 Iterator迭代器 。 为什么 list 、 dict 、 str 等数据类型不是 Iterator Python的 Iterator 对象表示的是一个数据流。可以把这个数据流看 做是一个有序序列但我们却不能提前知道序列的长度只能 不断通过 next() 函数实现按需计算下一个数据所以 Iterator 的计算 是惰性的只有在需要返回下一个数据时它才会计算。 所以生成器一定是迭代器。 Iterator 甚至可以表示一个无限大的数据流例如全体自然数。而 使用list是永远不可能存储全体自然数的。 for循环的本质 Python3的 for 循环本质上就是通过不断调用 next() 函数实现的。 本质是 # 首先获得Iterator对象: it iter([1, 2, 3, 4, 5]) # 循环: while True: try:# 获得下一个值:x next(it) except StopIteration:# 遇到StopIteration就退出循环break创建一个迭代器 一个类作为一个迭代器使用需要在类中实现两个方法 __iter__() 与 __next__() __iter__() 方法返回一个特殊的迭代器对象 这个迭代器对象实现了 __next__() 方法并通过StopIteration 异常标识迭代的完成。 __next__() 方法会返回下一个迭代器对象。 class MyNumbers:def __iter__(self):self.num 10return selfdef __next__(self):if self.num40:x self.numself.num 10return xelse:raise StopIteration myclass MyNumbers() myiter iter(myclass)print(next(myiter)) print(next(myiter)) print(next(myiter)) print(next(myiter)) print(next(myiter))动态添加属性和方法 动态编程语言是高级程序设计语言的一个类别在计算机科学领域 已被广泛应用。 它是指在运行时可以改变其结构的语言 例如新的函数、 对象、甚 至代码可以被引进 已有的函数可以被删除或是其他结构上的变化。 运行过程中给对象、类添加属性和方法 #codingutf-8 import types class Person():def __init__(self,name,age):self.name nameself.age age p1 Person(zhangsan,20) p2 Person(lisi,30) #动态给对象添加属性和方法 p1.score 100 print(p1.score)def run(self):print(f{self.name},running...) #动态的对象添加方法 p1.run types.MethodType(run,p1) p1.run()types.MethonType的使用 p1.run types.MethodType(run,p1) # 即使换成 xxx types.MethodType(run,p1) # xxx()调用一样还用 # 因为之前提示缺少参数主要是不知道self到底是谁 # 而types.MethodType(run,p1)则是告诉解释器self 指的就是p1给类动态添加静态方法以及类方法 staticmethod def staticfunc():print(---static method---) Person.staticfunc staticfunc Person.staticfunc()classmethod def clsfunc(cls):print(---cls method---) Person.clsfunc clsfunc Person.clsfunc()slots 的作用 __slots__ 对动态添加成员变量、成员方法有限制。对动态添加类属性、类方法没有限制。 __slots__ 只对本类有限制不限制子类 class Person():__slots__ {name,age}def __init__(self,name,age):self.name nameself.age agedef eat(self):print(人是铁饭是钢要吃) if __name__ __main__:p1 Person(gaoqi,18) # p1.gender man #AttributeError: Person object has no attribute gender
http://www.dnsts.com.cn/news/215568.html

相关文章:

  • 网站服务器租用报价无锡设计公司有哪些
  • 网站建设完成后怎么上传服务器百度推广手机版
  • 微网站 建设dw软件做的网站怎么发到网上
  • 地图网站制作wordpress 文章 繁体
  • 广东建设银行网站wordpress只能访问首页
  • 天远软件网站建设网页快照
  • wordpress建中文网站优化大师班级
  • 重庆电力建设公司网站升级不了wordpress
  • 公司建立自己的网站吗贵阳网站建设是什么
  • 石家庄网站开发设计微信息公众平台微网站建设
  • 网站的建设费计入无形资产吗最新外贸电商平台
  • 两学一做教育考试网站线上销售技巧
  • 网站建设都分几个阶段网站建设与网页设计
  • 网站怎么做查询功能学校后勤部网站建设方案
  • 个人买卖网站如何做wordpress全静态
  • 成都有做网站的公司吗网络广告推广网站
  • 做公司网站要多久榨油机 东莞网站建设
  • 网站的可行性分析怎么写wdcp搭建网站
  • 杭州网站模板wordpress 支持mkv播放器
  • 长安高端装备网站设计公司南通百度seo代理
  • 单位网站 单位网页 区别ui设计和网站开发
  • 网站开发选择题郑州竞价托管
  • 乐视网站建设目标军事最新消息
  • 福建网站备案网站整体排名大幅下降
  • 网站建设实训结论莱芜二手房出售信息最新房源
  • 网站改版提案寻找做网站的
  • 坪山企业网站建设网站发布信息的基本流程
  • 开发手机端网站模板下载不了企业网站建设的目的有()
  • 销售网站开发的背景第一网站ppt模板
  • 做网站推广大概需要多少钱WordPress的SEO插件安装失败