18 11 20 网络通信 ----多任务---- 携程 ----迭代器

Posted fromlantianwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了18 11 20 网络通信 ----多任务---- 携程 ----迭代器相关的知识,希望对你有一定的参考价值。

 

 

进行多任务的学习    携程   开始做一个迭代器   再做生成器  再学习携程    迭代器就是  可以用 for 循环 表示的一个 class

import time
from collections import Iterable
from collections import Iterator


class Classmate(object):
    def __init__(self):
        self.names = list()
        self.current_num = 0

    def add(self, name):
        self.names.append(name)

    def __iter__(self):
        """如果想要一个对象称为一个 可以迭代的对象,即可以使用for,那么必须实现__iter__方法"""
        return self  # 调用iter(xxobj)的时候 只要__iter__方法返回一个 迭代器即可,至于是自己 还是 别的对象都可以的, 但是要保证是一个迭代器(即实现了 __iter__  __next__方法)

    def __next__(self):
        if self.current_num < len(self.names):
            ret = self.names[self.current_num]
            self.current_num += 1
            return ret
        else:
            raise StopIteration


classmate = Classmate()
classmate.add("老王")
classmate.add("王二")
classmate.add("张三")

# print("判断classmate是否是可以迭代的对象:", isinstance(classmate, Iterable))
# classmate_iterator = iter(classmate)
# print("判断classmate_iterator是否是迭代器:", isinstance(classmate_iterator, Iterator))
# print(next(classmate_iterator))

for name in classmate:
    print(name)
    time.sleep(1)

要是只用for的方式  还用什么迭代器

迭代器 可以先存储生成数据的方式  到使用再生成   而不是直接存储暂时不需要的数据  可以减少很大的内存空间的占用

 

以上是关于18 11 20 网络通信 ----多任务---- 携程 ----迭代器的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu18.04安装DPDK20.11.1超详细!

Ubuntu18.04安装DPDK20.11.1超详细!

Ubuntu18.04安装DPDK20.11.1超详细!

ubuntu20.04 安装和配置JDK11

Zigbee无线传感网 CC2530+DHT11&DS18B20 温湿度采集 串口上位机显示

11.18 Apache用户认证 11.19/11.20 域名跳转 11.21 Apache访问日志