Lu中的Python eval()

2024-09-29 23:20:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下Lua代码:

ow = { {move, 4, 5, Down}, { }, ...}

...

if ow[n][1] == "move" then
    joypad.set({ ow[n][4] = true })

此代码返回错误。我想让它像我打字一样工作:

^{pr2}$

在python中,我处理这种情况的方式如下:

eval('joypad.set({ {0} = true })'.format(ow[n][4]))

在Lua,有没有类似或不同的方法可以做到这一点?在


Tags: 代码truemoveif错误eval方式情况
2条回答

你需要这样写:

joypad.set({ [ow[n][4]] = true })

注意“ow[n][4]”前后的括号。在

…您可以省略括号:

^{pr2}$

规则是这样的:如果表键不是词法标识符或字符串,则需要将其放在括号内。在

为了回答你的另一个问题,是的,Lua确实有类似eval的东西,它叫做loadstring

local setjoy = ("joypad.set { %s = true }"):format(ow[n][4])
loadstring(setjoy)()

但正如尼科洛的回答所显示的,有一个更直接的方法来解决你所追求的。在

相关问题 更多 >

    热门问题