草庐IT

yield_per

全部标签

python - 可使用 yield 或 __next__() 迭代

我正在研究制作可迭代对象,我想知道这两个选项中的哪一个更像pythonic/更好的方法,是没有区别还是我对使用yield的想法有误?对我来说,使用yield似乎更干净,而且显然它比使用__next__()更快,但我不确定。classiterable_class():def__init__(self,n):self.i=0self.n=ndef__iter__(self):returnselfdef__next__(self):ifself.i使用yield:classiterable_class_with_generator():def__init__(self,n):self.i=0

python - 如何在 Keras 中正确设置 steps_per_epoch 和 validation_steps?

我已经在Keras中训练了多个模型。我的训练集中有39、592个样本,验证集中有9、899个样本。我使用的批量大小为2。当我检查我的代码时,我突然想到我的生成器可能丢失了一些批处理的数据。这是我的生成器的代码:train_datagen=ImageDataGenerator(rescale=1./255,shear_range=0.2,zoom_range=0.2,horizontal_flip=True)val_datagen=ImageDataGenerator(rescale=1./255)train_generator=train_datagen.flow_from_direc

python - 为什么 yield 生成的生成器比 xrange 生成的生成器快?

我正在研究Python生成器并决定进行一个小实验。TOTAL=100000000defmy_sequence():i=0whilei内存使用(使用psutil获取进程RSS内存)和所用时间(使用time.time())在每个方法运行几次并取平均值后如下所示:sequence_of_values=my_sequence()#Memoryusage:6782976BTimetaken:9.53674e-07ssequence_of_values2=my_xrange()#Memoryusage:6774784BTimetaken:2.14576e-06slist_of_values=my_

python - 为什么 __next__() 内部的 yield 会返回生成器对象?

我正在使用yield在我的类中的__next__()函数中返回下一个值。但是它不返回下一个值,它返回生成器对象。我正在尝试更好地理解迭代器和yield。我可能做错了。看看。classMyString:def__init__(self,s):self.s=sdef__iter__(self):returnselfdef__next__(self):foriinrange(len(self.s)):yield(self.s[i])r=MyString("abc")i=iter(r)print(next(i))返回:生成器对象__next__位于0x032C05A0

python - 'yield all the output from a generator' 有简写吗?

是否有单行表达式:forthingingenerator:yieldthing我试过yieldgenerator没有用。 最佳答案 在Python3.3+中,您可以使用yieldfrom.例如,>>>defget_squares():...yieldfrom(num**2fornuminrange(10))...>>>list(get_squares())[0,1,4,9,16,25,36,49,64,81]它实际上可以与任何可迭代对象一起使用。例如,>>>defget_numbers():...yieldfromrange(10)

python - asyncio yield from concurrent.futures.Future 执行者

我有一个long_task函数,它运行大量cpu绑定(bind)计算,我想通过使用新的asyncio框架使其异步。生成的long_task_async函数使用ProcessPoolExecutor将工作卸载到不同的进程,从而不受GIL的约束。问题在于,出于某种原因,从ProcessPoolExecutor.submit返回的concurrent.futures.Future实例在产生时会抛出一个TypeError。这是设计使然吗?这些future与asyncio.Future类不兼容吗?有什么解决方法?我还注意到生成器不可picklable,因此将协程提交给ProcessPoolExe

python - `yield from foo()` 和 `for x in foo(): yield x` 之间的区别

在Python中,大多数yieldfrom的例子都是这样解释的yieldfromfoo()类似于forxinfoo():yieldx另一方面,它似乎并不完全相同,并且有一些魔法。我对使用一个我不理解的魔法函数感到有点不安。关于yieldfrom的魔力,我需要知道什么才能避免发生我意想不到的事情?魔术提供了哪些优势,我应该知道? 最佳答案 当foo()返回一个常规的可迭代对象,两者是等价的。当foo()时,“魔法”开始发挥作用。也是一个生成器。在那一刻,yieldfromfoo()和forxinfoo():yieldx情况大不相同。生

python - yield_per 期间出现 sqlalchemy 游标错误

我收到以下错误:Traceback(mostrecentcalllast):main()foriteminsession.query(Item).yield_per(10):fetch=cursor.fetchmany(self._yield_per)self.cursor,self.context)l=self.process_rows(self._fetchmany_impl(size))row=self._fetchone_impl()self.__buffer_rows()self.__rowbuffer=collections.deque(self.cursor.fetchm

python - 'yield' 关键字的文档字符串标记

python中的文档字符串有一些标签,如@param和@return,例如:defmy_method(a_param):'''@parama_param:Descriptionofthisparam@return:Thereturnvalueofthemethod'''returnint(a_param)*(otheror1)我可以用什么来记录生成器?特别是yield关键字,例如:defmy_generator(from=0):'''@paramfrom:Theinitialvalue@yield:Alotofvalues'''yielda_value我知道这里可以使用@returna

Python 异步 : yield from wasn't used with future?

我正在尝试使用asyncio进行异步客户端/服务器设置。出于某种原因,我在运行客户端时收到AssertionError:yieldfromwasn'tusedwithfuture。搜索此错误的结果并不多。这个错误是什么意思,是什么原因造成的?#!/usr/bin/envpython3importasyncioimportpickleimportuuidport=9999classClientProtocol(asyncio.Protocol):def__init__(self,loop):self.loop=loopself.conn=Noneself.uuid=uuid.uuid4(