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

网站优化标准/网站内部seo

网站优化标准,网站内部seo,网站建设属于什么类目,wordpress文章登录可见python源代码中经常会有使用yield,带有yield的函数是generator(生成器),它返回是一个迭代值,下面我们分析yield是什么原理,有什么好处?首先,我们写一个简单的斐波那契数列前n项值得方法:def fab…

python源代码中经常会有使用yield,带有yield的函数是generator(生成器),它返回是一个迭代值,下面我们分析yield是什么原理,有什么好处?

首先,我们写一个简单的斐波那契数列前n项值得方法:

def fab(max):

n,a,b=0,0,1

while n

print b

a,b=b,a+b

n=n+1fab(5)

input()

函数输出1  1  2  3  5  没有问题,但是该方法没有返回值,复用性太差了,我们希望得到有返回结果的方法。

修改如下:

def fab(max):

n,a,b=0,0,1result=[]while n

result.append(b)

a,b=b,a+b

n=n+1

returnresult

print fab(5)

input()

返回[1,1,2,3,5]的list,这样我们就可以方便的用它的结果了,但是当max很大时,对内存是一个很大的开销,并不是一个好的方法,怎么办呢?这就要用到迭代器的知识了,返回一个迭代变量是更好的选择。

例如 for i in range(100):pass  会导致生成一个100个元素的list;

for i in xrange(100):pass  不会产生100个元素的list,而是每次返回一个iterable对象,只有上一个数据用完之后才生成下一个,每次只返回一个,所以减小了内存开销。

利用iterable我们可以把fab()方法写成一个支持iterable的class,如下:

class Fab(object):

def __init__(self,max):

self.max=max

self.n,self.a,self.b=0,0,1def __iter__(self):returnself

def next(self):if self.n

r=self.b

self.a,self.b=self.b,self.a+self.b

self.n=self.n+1

returnr

raise StopIteration()

fab=Fab(5)for n infab:

print n

input()

这样就实现了迭代器的返回方法,但是代码太多,不够简洁,这时候yield就用上了。

def fab(max):

n,a,b=0,0,1

while n

a,b=b,a+b

n=n+1

for i in fab(5):

print i

input()

这样就实现了。

yeild的原理:一个带有yield的函数就是一个generator生成器,和普通的函数不一样。只有调用next()函数的时候才会执行函数语句,在for循环中会自动调用next()方法。函数执行过程中遇到一个yield会中断一次,返回一个迭代值,函数保存自己的变量和状态,下次迭代时(也就是下次next()的时候)从yield下一条语句继续执行(这个性质很重要),函数恢复之前状态,直到遇到下一个yield返回迭代值,这样循环。

可以用

f=fab(5)

fab.next()不断测试来分析它的原理。

http://www.jmfq.cn/news/5042287.html

相关文章:

  • 视频网站/网络营销推广方案模板
  • 网页游戏大全找556pk游戏专业/郑州seo服务技术
  • 购物网站建设的思路/百度seo在线优化
  • 广东 网站建设/网络推广的好处
  • 用网站的源代码怎么做网站/百度pc端提升排名
  • 靠谱企业网站设计公司/上海好的seo公司
  • iis搭建网站怎么做前端/营销型网站重要特点是
  • 最好的网站建设团队/外链怎么发
  • 做网站推广话术/班级优化大师官网下载
  • 网站未备案 打不开/视频号推广方法
  • 如果自己做网站卖设备/手机如何制作网站
  • 网站的月度流量统计报告怎么做/制作网页的网站
  • 专门做餐饮空间设计的网站/新手怎么做seo优化
  • 定制化网站开发费用/百度热搜风云榜
  • 建设网站的建筑公司/seo搜索引擎优化实训报告
  • 广州专业的免费建站/百度地图下载2022新版安装
  • 百度搜索 网站图片/关于进一步优化当前疫情防控措施
  • 大理州建设局网站门户网/百度视频免费下载
  • 做讲课ppt的网站/网站建设的公司
  • wordpress直接访问站点/宁波优化系统
  • 建网站是自己做还是用CMS/seo发外链的网站
  • 自己建网站做那个模块好/信息流广告加盟代理
  • 门户网站建设管理工作/十大搜索引擎
  • 建网站郑州/广州网站营销优化qq
  • 网站架构设计师工作内容/东莞seo建站如何推广
  • 做网站的害处/惠州seo排名
  • 昆山建筑行业网站/百度app下载安装官方免费版
  • 酒店类的电影网站模板免费下载/全国免费发布广告信息
  • 外贸网站样式/足球世界积分榜
  • 商务网站开发代码/排名优化工具