将 python literal_eval 字符串转换为 hy

Convert python literal_eval string to hy

我想将以下内容转换为 Hy,但我似乎不知道该怎么做;有没有办法将一串 python 代码转换为 hy 语法?我不知道 py 是否有效,因为 f_back 的评估结果可能不安全。

import ast, inspect
def test(f_back):
    return ast.literal_eval(f"inspect.currentframe(){'.f_back' * f_back}")

您始终可以在循环中重复计算 x = x.f_back,而不是为此使用元编程。

为了解决更普遍的问题,Hy 本身只实现了 Hy-to-Python 方向,而不是 Python 到 Hy。还有 Hikaru Ikuta 的 py2hy, which doesn't work with recent releases of Hy, but he's recently talked about updating it,所以这可能很快就会改变。