Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python字符串到模块引用_Python_Python 3.x - Fatal编程技术网

Python字符串到模块引用

Python字符串到模块引用,python,python-3.x,Python,Python 3.x,有没有从字符串中“引用”模块的方法? 例如,以下内容非常重复: module=“module1” 如果模块==“模块1”: 模块1.function1() elif模块==“模块2”: 模块2.function1() elif模块==“模块3”: 模块3.function1() #其他代码。。。 如果模块==“模块1”: 模块1.函数2() elif模块==“模块2”: 模块2.function2() elif模块==“模块3”: 模块3.函数2() 所以我想知道是否有更好的方法,例如exec

有没有从字符串中“引用”模块的方法? 例如,以下内容非常重复:

module=“module1”
如果模块==“模块1”:
模块1.function1()
elif模块==“模块2”:
模块2.function1()
elif模块==“模块3”:
模块3.function1()
#其他代码。。。
如果模块==“模块1”:
模块1.函数2()
elif模块==“模块2”:
模块2.function2()
elif模块==“模块3”:
模块3.函数2()
所以我想知道是否有更好的方法,例如
exec(module).function1()
(它不工作,可能也不安全…)


或者,有没有更好的方法来编码这种类型的东西?每个文件用于不同的站点,但具有相同的功能。

如果字符串和模块名称不同,可以在程序开始时设置dict:

import module1
import module2

modules = {
  "module1": module1,
  "module2": module2,
  ...
}
...

modules[moduleName].function1()
modules[moduleName].function2()
如果您的字符串始终与模块名称相同,则您可以使用:


如果字符串和模块名称不同,可以在程序开始时设置dict:

import module1
import module2

modules = {
  "module1": module1,
  "module2": module2,
  ...
}
...

modules[moduleName].function1()
modules[moduleName].function2()
如果您的字符串始终与模块名称相同,则您可以使用:


您可以只设置
module1
(或
module2
module3
)并运行
module.function1()
,等等。您可以只设置
module1=module1
(或
module2
module3
)并运行
module.function1()
,等等。您也可以使用内置的
\uuuuu导入
功能,而不是
导入模块
功能。谢谢!您知道是否可以对来自导入的
执行相同的操作吗?因此,模块中的
在此方法中导入模块1
。我试过导入(modules.module1)
,但它不起作用。不管怎样,
importlib
也可以。再次感谢!!您也可以使用内置的
\uuuuuu导入
功能,而不是
导入模块
功能。谢谢!您知道是否可以对来自导入的
执行相同的操作吗?因此,模块中的
在此方法中导入模块1
。我试过导入(modules.module1)
,但它不起作用。不管怎样,
importlib
也可以。再次感谢!!