gpt4 book ai didi

python3/hy - 评估 python 中的 hy 表达式?

转载 作者:行者123 更新时间:2023-12-01 02:35:01 26 4
gpt4 key购买 nike

我知道如何将 hy 模块导入到 python 中。我所要做的就是创建一个包含 hy 代码的 something.hy 文件,然后执行以下操作...

import hy
import something
something.func('args') # assumes there is an hy function called `func`

但是,我无法弄清楚如何在 python 中计算包含 hy 代码的字符串。例如...

hycode = '(print "it works!")'
hy.SOMEHOW_EVALUATE(hycode)
# I'd like this to cause the string `it works!` to print out.

或者这个例子......

hycode = '(+ 39 3)'
result = hy.SOMEHOW_EVALUATE(hycode)
# I'd like result to now contain `42`

在Python中使用hy时,有没有办法以这种方式评估字符串?

最佳答案

使用hy.read_strhy.eval

>>> import hy
>>> hy.read_str("(+ 39 3)")
HyExpression([
HySymbol('+'),
HyInteger(39),
HyInteger(3)])
>>> hy.eval(_)
42
>>> hycode = hy.read_str('(print "it works!")')
>>> hycode
HyExpression([
HySymbol('print'),
HyString('it works!')])
>>> hy.eval(hycode)
it works!

如果您从 Github master 安装 Hy,则此方法有效。如果您需要使其在旧版本的 Hy 上工作,您可以看到 hy 包的 __init__.py 中的实现很简单

from hy.core.language import read, read_str  # NOQA
from hy.importer import hy_eval as eval # NOQA

关于python3/hy - 评估 python 中的 hy 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46351010/

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