python模块实例化_关于python:动态导入模块中类的字符串名称的动态实例化?

在python中,我必须实例化某些类,在字符串中知道其名称,但是该类"存在"于动态导入的模块中。 下面是一个示例:加载程序类脚本:import sysclass loader:def __init__(self, module_name, class_name): # both args are stringstry:__import__(module_name)modul = sys.modul...
摘要由CSDN通过智能技术生成

在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中的某些预定义行为使加载程序类使用任何动态加载的模块...

您可以使用getattr

getattr(module, class_name)

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

module = __import__(module_name)

class_ = getattr(module, class_name)

instance = class_()

如下所述,我们可以使用importlib

import importlib

module = importlib.import_module(module_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值