python的exec()函数的C ++版本

时间:2019-12-11 09:27:36

标签: python c++ python-3.x python-exec

在python中,您有一个称为exec的内置函数,该函数以字符串形式执行python代码

// Your setting of a global file e.g. hides all as deleted marked items
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Type>().HasQueryFilter(b => !b.IsDeleted);
}

// Instead of creating two queries, you have to manually combine both cases into one query
private void DoSomething()
{
    var combined = context.Type.IgnoreQueryFilter().Include(b => b.Activity).Where(b => !b.accepted || !b.IsDeleted);
}

但是,python中是否有c ++版本的exec?

3 个答案:

答案 0 :(得分:2)

但是,python中是否有c ++版本的exec?

您要从字符串执行C语言语句!因此使用c不可能。

为什么

因为c是编译语言,所以程序首先被编译然后执行。 它可能在python中作为其解释语言,意味着程序由 运行时即时编译器。 希望这会有所帮助。

答案 1 :(得分:1)

嗯,技术上,您(也许)可以。但这并不是合理的努力,还有其他脚本语言可以集成在C ++中。例如Lua。考虑一下,如果您有方法int excuteCode(std::string code)

,以下操作可能会起作用
  1. 将该字符串复制到将其包装在某些函数中的模板中。以下是这种模板的想法:
int userFunc()
{
    %code%
}
  1. 将模板写入文件
  2. 从该文件构建动态库(例如Windows上的.dll)(通过system或操作系统特定的方法调用编译器和链接器)
  3. 将动态库加载到正在运行的程序中(同样,特定于OS的方法)
  4. 加载所需的方法userFunc并执行。

答案 2 :(得分:-1)

<div v-for="(modifier) in modifiers" :key="modifier.name">
 <ul v-for="(block) in modifier.blocks" :key="block.name">
   <li></li>
 </ul>
</div>

对于系统命令...?