2024-09-30 22:26:00 发布
网友
如何通过名称从另一个包中获取对模块的引用?在
考虑到:
genericCall(packageName, moduleName, methodName): #Call moduleName.methodName #knowing that the moduleName is in packageName
在哪里
您必须导入模块或包,并且要按名称进行导入,可以使用^{}或^{}。在
import importlib def genecirCall(package_name, module_name, function_name): # import module you need module = importlib.import_module('%s.%s' % (package_name, module_name)) getattr(module, function_name)() # make a call
注意,在这个例子中,module变量将是局部变量。在
module
__import__提供动态导入包的功能。然后在导入包之后,可以使用getattr从模块名中获取模块对象(在Python中称为introspection)。因为这两个函数都是内置函数,所以可以使用它们而不必显式导入其他包。doc提供了这些内置函数的更多信息。在
__import__
getattr
introspection
package = __import__(packageName) module = getattr(package, moduleName) method = getattr(module, methodName) method(...)
您必须导入模块或包,并且要按名称进行导入,可以使用^{} 或^{} 。在
注意,在这个例子中,
module
变量将是局部变量。在__import__
提供动态导入包的功能。然后在导入包之后,可以使用getattr
从模块名中获取模块对象(在Python中称为introspection
)。因为这两个函数都是内置函数,所以可以使用它们而不必显式导入其他包。doc提供了这些内置函数的更多信息。在相关问题 更多 >
编程相关推荐