编程语言
首页 > 编程语言> > python – 有没有人成功在grinder 3的jython脚本中使用’yield’关键字?

python – 有没有人成功在grinder 3的jython脚本中使用’yield’关键字?

作者:互联网

我有这个功能:

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

有没有办法让收益率有效?我在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,yield,jython,grinder
来源: https://codeday.me/bug/20190902/1790513.html