当前位置: 首页 > 面试题库 >

为什么在函数中的exec中无法导入?

许涵容
2023-03-14
问题内容

我可以将import语句放在字符串中,执行它,然后它可以工作(打印随机数字):

code = """
import random
def f():
    print random.randint(0,9)
"""

def f():
    pass

exec code
f()

现在,如果我把exec codef()自己的功能和调用它,这是行不通的。

def test():
    exec code
    f()

test()

它说NameError: global name 'random' is not defined


问题答案:

这个怎么样:

def test():
    exec (code, globals())
    f()


 类似资料:
  • 问题内容: 我遇到了一段Mongoose代码,其中包括查询findOne和一个exec()函数。 我以前从未在Javascript中看到过该方法吗?它到底是做什么的? 问题答案: 基本上,当使用猫鼬时,可以使用助手来检索文档。每个接受查询条件的模型方法都可以通过或方法执行。 : : 因此,当您不传递回调时,可以构建查询并最终执行它。 您可以在 “Mongoose文档”找到其他信息。 更新 将Pro

  • 需要您的帮助,我不明白为什么会出现以下错误,我不是专业的postgresql开发人员。。 正如你可以看到创建的函数,那么为什么函数不存在? 错误:函数logintry(未知,未知,带时区的时间戳,整数)不存在第1行:选择logintry('Jon.Jones88@gmail.com','_@kjhfdb987',...^HINT:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。SQL

  • 问题内容: 我试图学习有关PHP函数sprintf()的更多信息,但由于我仍然感到困惑,php.net并没有太大帮助,您为什么要使用它? 看下面我的例子。 为什么使用这个: 当这样做相同并且更容易编写IMO时: 我在这里想念什么吗? 问题答案: 具有原始printf的所有格式化功能,这意味着您不仅可以在字符串中插入变量值,还可以做更多的事情。 例如,指定数字格式(十六进制,十进制,八进制),小数位

  • 问题内容: 如果我运行此命令: 我得到这个: 但是如果我运行这个: 然后,我得到了预期的结果: 有什么不同? 问题答案: 带有全局正则表达式的表达式应在循环中使用,因为它仍将检索所有匹配的子表达式。所以: 为您执行此操作,并丢弃捕获的组。

  • 问题内容: 根据Java语言规范,无法将构造函数标记为已同步,因为其他线程在创建该对象的线程完成之前无法看到正在创建的对象。这似乎有些奇怪,因为在构造对象时,我确实可以让另一个线程查看该对象: 我知道这是一个非常人为的示例,但从理论上讲,似乎有人可以提出一个更现实的案例,在该案例中,标记构造函数为同步状态是合法的,以防止此类线程的竞争。 我的问题是:Java是否有理由特别禁止在构造函数上使用syn

  • 问题内容: 我对此代码有疑问:https : //github.com/reactjs/redux/blob/master/examples/async/containers/App.js 特别: 我猜这是一个两部分的问题。 为什么我需要将句柄更改设置为类的实例,我不能只对handleChange使用静态函数并直接在类中调用它 ? 我不知道这是怎么回事: 谢谢 问题答案: 以相反的顺序回答… 返回