从动态导入的模块中的类的字符串名称动态实例化?

哈维尔·诺沃瓦(Javier Novoa C.):

在python中,我必须实例化某些类,在字符串中知道其名称,但是该类“存在”于动态导入的模块中。下面是一个示例:

加载程序类脚本:

import sys
class loader:
  def __init__(self, module_name, class_name): # both args are strings
    try:
      __import__(module_name)
      modul = sys.modules[module_name]
      instance = modul.class_name() # obviously this doesn't works, here is my main problem!
    except ImportError:
       # manage import error

一些动态加载的模块脚本:

class myName:
  # etc...

我使用这种安排使dyn-loaded-modules中的某些预定义行为使加载程序类使用任何动态加载的模块...

斯文·马纳赫(Sven Marnach):

您可以使用getattr

getattr(module, class_name)

访问课程。更完整的代码:

module = __import__(module_name)
class_ = getattr(module, class_name)
instance = class_()

如前所述下面,我们可以使用导入库

import importlib
module = importlib.import_module(module_name)
class_ = getattr(module, class_name)
instance = class_()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python动态导入-如何从变量中的模块名称中导入*?

从模块动态导入类

如何从Rails中的名称字符串实例化类?

如何从Crystal中的字符串名称创建类实例?

是否可以从动态变量实例化javascript类?

如何从动态链接接收字符串?

如何通过CURRENT文件中的字符串名称在Python中实例化类?

Python:使用importlib从字符串动态导入模块的代码

名称列表中的fortran动态字符串

搜索范围(文本模板)中的字符串并从动态行中替换

从动态ExpandoObject生成JSON字符串

通过类的字符串名称将JSON对象反序列化为运行时动态创建的特定实例

通过字符串名称动态导入和呈现组件

如何从动态创建的字符串数组中创建datastore.Text对象?

字符串中的动态结构名称

在PHP中基于字符串动态实例化一个类

从动态字符串数组中删除特定索引处的项目

在C#中,如果(字符串)类名称已知,如何从该(字符串)类实例化对象?

根据给定的字符串动态创建类实例,并将深层副本保存在字典中

从动态字符串Vb.net拆分固定长度的字符串

从导入的模块中按名称动态导入类:

如何从动态字符串中删除换行符

从动态字符串中删除字符

从动态加载的模块实例化类

从动态字符串中提取 ID SET

从动态字符串名称中解构对象

vue js中的动态查询字符串名称

从动态字符串中获取运算符之前的子字符串

通过点击从动态 tableView 访问字符串