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
也可以。再次感谢!!