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

如何从函数中进行全局导入?

贝洲
2023-03-14
问题内容

我担心这是解决问题的麻烦方式,但是…

假设我想根据某些条件在Python中进行一些导入。

因此,我想编写一个函数:

def conditional_import_modules(test):
    if test == 'foo':
        import onemodule, anothermodule
    elif test == 'bar':
        import thirdmodule, and_another_module
    else:
        import all_the_other_modules

现在如何使导入的模块全局可用?

例如:

conditional_import_modules(test='bar')
thirdmodule.myfunction()

问题答案:

导入的模块只是变量-名称绑定到某些值。因此,您所需要做的就是导入它们,并使用global关键字使它们成为全局的。

例:

>>> math
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'math' is not defined
>>> def f():
...     global math
...     import math
...
>>> f()
>>> math
<module 'math' from '/usr/local/lib/python2.6/lib-dynload/math.so'>


 类似资料:
  • 问题内容: 有没有一种方法可以将一个函数定义为在一个类中是全局的(或者,实际上是在另一个函数中)?类似于定义全局变量。 问题答案: 将函数添加到当前名称空间,就像将添加任何其他名称一样。这意味着您可以在函数或方法中使用关键字: 同样适用于类主体或方法: 区别将在导入时执行顶级类主体时立即定义。 像您的所有用途一样,您可能想重新思考问题并找到另一种解决方法。例如,您可以 返回 如此创建的函数。 演示

  • 全局函数 返回上级 DirectDrawCreate DirectDrawCreateClipper DirectDrawEnumerate DirectDrawEnumerateEx DirectDrawCreate 返回目录 创建一个DirectDraw对象的实例。 HRESULT WINAPI DirectDrawCreate( GUID FAR *lpGUID, LPDIRECTDRAW

  • debug 调试打印PHP变量,并中断执行。等同于 var_dump($var1, $var2);die; table 将任意MySQL表构造成Model对象。 table($table_name, $db_object_id); model 创建模型对象。 model($model_name, $db_object_id);

  • Herosphp提供了一些全局辅助函数: //格式化打印变量(数据) __print($message); //终端高亮打印绿色(success) tprintOk($message); //终端高亮打印红色(error) tprintError($message); //终端高亮打印黄色(warning) tprintWarning($message); //计算字符串的hash值, 默

  • imigo 启动一个协程,自动创建和销毁上下文 imigo(function(){ $value = Redis::get('key'); // 无需手动释放任何资源 }); 传入参数: imigo(function($id, $name){ echo $id, ':', $name, PHP_EOL; // 1:test }, 1, 'test'); imiCalla

  • 我需要帮助了解如何从函数运行导入代码! 正如你所看到的,我是新来的python. time语音是另一个. py文件,当我做运行。我试图通过一个函数来运行它,如果在列表中回答:timespeech.say时间(),我相信你应该把它作为,但我不确定之后会发生什么。请帮助!