#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
关键:
1 生成器:
含义: 一边生成,一边计算
优点: 适用于不能一下子将输入数据存储在列表中,然后遍历输入数据列表进行处理的场景
特点: 输入的数据需要有某种推导或者计算规则
2 生成方式:
方式1: 圆括号
例如:
generator = (x * x for x in range(5))
打印元素:
for value in generator:
print value
方式2: yield
def fibonacchi(num):
counter = 0
previous = 0
current = 1
while counter < num:
yield current
tmp = previous
previous = current
current += tmp
counter += 1
运行原理:
生成器遇到yield返回,再次执行会从yield语句处继续执行
3 应用:
ceilometer中获取虚机列表中的cpu数据的时候用到生成器:
具体代码如下:
class CPUPollster(pollsters.BaseComputePollster):
def get_samples(self, manager, cache, resources):
for instance in resources:
LOG.debug('checking instance %s', instance.id)
try:
cpu_info = self.inspector.inspect_cpus(instance)
LOG.debug(
python 64式: 第8式、生成器
最新推荐文章于 2019-11-26 08:15:53 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)