栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何len(generator())

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何len(generator())

生成器没有长度,它们毕竟不是集合。

生成器是 具有内部状态 (和精美语法)的 函数
。您可以反复调用它们以获得值序列,因此可以循环使用它们。但是它们不包含任何元素,因此,要求生成器的长度就像要求函数的长度一样。

如果Python中的函数是对象,是否不能将长度分配给该对象的变量,新生成器可以访问该变量?

函数是对象,但是您不能为其分配新的属性。原因可能是使这样的基本对象尽可能高效。

但是,您可以简单地

(generator, length)
从函数中返回对或将生成器包装在一个简单的对象中,如下所示:

class GeneratorLen(object):    def __init__(self, gen, length):        self.gen = gen        self.length = length    def __len__(self):         return self.length    def __iter__(self):        return self.geng = some_generator()h = GeneratorLen(g, 1)print len(h), list(h)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号