gpt4 book ai didi

python - 有没有人在 Grinder 3 的 jython 脚本中成功使用 'yield' 关键字?

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:43 24 4
gpt4 key购买 nike

我有这个功能:

def ngrams(word):
for i in range(1, len(word) + 1):
yield word[:i]

..我得到一个错误

2012-03-09 19:37:31,928 ERROR worker-bootstrap: Error running worker process
net.grinder.scriptengine.jython.JythonScriptExecutionException: SyntaxError: ('invalid syntax', ('C:\\grinder-3.7.1\\lib
\\.\\nb-romg-file-store\\current\\grinder_test.py', 72, 15, ' yield word[:i] '))
(no code object) at line 0

有什么方法可以使 yield 起作用吗?我在 jython 控制台中尝试了相同的功能 - 如果工作正常。

最佳答案

在旧版本的 Jython 中,生成器(使用 yield 关键字的函数)默认不可用。您可以尝试通过添加启用该功能

from __future__ import generators

到源文件的顶部。如果这不起作用,那么您可能不走运,因为生成器在该版本的 Jython 中根本不可用。在这种情况下,您可以尝试使用列表来模拟行为:

def ngrams(word):
result = []
for i in range(1, len(word) + 1):
result.append(word[:i])
return result

这非常丑陋,但即使在最古老的 Python 实现中它也应该可以工作。

关于python - 有没有人在 Grinder 3 的 jython 脚本中成功使用 'yield' 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9638621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com