问题标签 [generator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iterator - 迭代器和生成器有什么区别?
迭代器和生成器有什么区别?
python - 为什么 Python 中没有 first(iterable) 内置函数?
我想知道first(iterable)
Python 内置函数中是否有 no 的原因,有点类似于any(iterable)
and all(iterable)
(它可能隐藏在某个 stdlib 模块中,但我没有在 中看到它itertools
)。first
将执行短路生成器评估,从而可以避免不必要的(并且可能是无限数量的)操作;IE
通过这种方式,您可以表达以下内容:
显然,在这种情况下你不能这样做list(generator)[0]
,因为生成器不会终止。
或者,如果您有一堆正则表达式要匹配(当它们都具有相同的groupdict
界面时很有用):
list(generator)[0]
通过避免和短路正匹配,您可以节省大量不必要的处理。
python - 意外使用生成器功能时会收到警告吗
我正在使用类的生成器函数和私有函数。我想知道
- 为什么在 __someFunc 中产生(在我的一种情况下是偶然的)时,这个函数似乎不是从 __someGenerator 中调用的。另外,在提及语言的这些方面时,我想使用什么术语?
- python解释器可以警告这种情况吗?
下面是我的场景的示例片段。
我对此感到很恼火,并花了一些时间试图弄清楚为什么一个函数没有被调用。我终于发现我正在屈服于我不想参与的功能。
python - 为什么我的 Python 测试生成器根本不起作用?
这是一个示例脚本来测试产量的使用......我做错了吗?它总是返回'1'......
graph - 动态图生成器
我需要动态绘制线图的点..(就像心电图中的示波器一样)..有人可以推荐一些包含这种功能的工具!!..
python - 生成器是线程安全的吗?
我有一个多线程程序,我在其中创建了一个生成器函数,然后将它传递给新线程。我希望它本质上是共享/全局的,因此每个线程都可以从生成器中获取下一个值。
使用这样的生成器是否安全,或者我会遇到从多个线程访问共享生成器的问题/条件?
如果没有,有没有更好的方法来解决这个问题?我需要一些可以循环遍历列表并为调用它的线程生成下一个值的东西。
python - 将局部变量添加到正在运行的生成器
最近,我尝试从正在运行的生成器外部设置局部变量。生成器代码也应该访问这些变量。
一个问题是,当访问变量时,解释器认为它必须是一个全局变量,因为变量没有设置在本地范围内。但我不想更改全局变量,也不想复制整个全局范围以人为地使变量局部化。
另一个麻烦是,当从外部访问时,本地人(和全局人?)的字典接缝为只读。
是否有任何合法(或至少部分合法的方式)将本地人引入正在运行的生成器实例?
编辑澄清:
我不是指“发送”功能。这当然是一个简洁的功能,但是由于我想设置多个具有不同名称的变量,因此对我的目的来说并不方便。
python - 使用生成器作为进度通知器
我目前正在使用生成器作为获得长流程进度的快速方法,我想知道它通常是如何完成的,因为我发现它不是很优雅......
让我先解释一下,我有一个 engine.py 模块,它执行一些视频处理(分割、bg/fg 减法等),这需要很多时间(从几秒到几分钟)。
我从一个用 wxpython 编写的 GUI 和一个控制台脚本中使用这个模块。当我查看如何在 wxpython 中实现进度对话框时,我看到我必须以某种方式获取进度值来更新我的对话框,这是你承认的纯逻辑......所以我决定使用我的处理的帧数引擎函数,每 33 帧产生当前帧号,并在处理完成时产生 None。
通过这样做,它看起来像这样:
效果很好,绝对没有明显的速度损失,但是如果我不想的话,我希望能够调用 processMovie() 函数而不必处理生成器。
例如,我使用引擎模块的控制台脚本不关心进度,我可以使用它,但它注定要在没有显示的环境中执行,所以我真的不关心进度......
有人有我想出的另一种设计吗?(使用线程、全局变量、进程等)
我认为必须有一个设计可以干净地完成这项工作:-)
python - Python 函数可以使用生成器并将生成器返回到其生成输出的子集吗?
假设我有一个像这样的生成器函数:
示例输出可能是:('a', 1), ('a', 2), ('a', 3), ('a', 4), ('a', 5), ('a', 6), ('a', 7), ('a', 8), ('b', 9), ('c', 10), ('c', 11), ('c', 12) , ('c', 13)
我想把它分成三组:A 组、B 组和 C 组。我希望每个组都有一个生成器。然后我将生成器和组字母传递给子函数。子函数的一个例子:
所需的输出将是:
如何在不更改 big_gen() 或 printer() 的情况下做到这一点,并避免一次将整个组存储在内存中?(在现实生活中,群体很大)
testing - NUnit 测试生成器
可以为 NUnit 测试推荐什么好的(免费)生成器?