为了账号安全,请及时绑定邮箱和手机立即绑定

python是否具有Java Class.forName()的等价物?

python是否具有Java Class.forName()的等价物?

繁花如伊 2019-08-15 15:41:14
python是否具有Java Class.forName()的等价物?我需要获取一个字符串参数,并在Python中创建该字符串中指定的类的对象。在Java中,我会使用Class.forName().newInstance()。Python中有相应的东西吗?谢谢你的回复。要回答那些想知道我在做什么的人:我想使用命令行参数作为类名,并实例化它。我实际上是在Jython中编程并实例化Java类,因此问题的Java-ness。 getattr()效果很好。非常感谢。
查看完整描述

3 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

def import_class_from_string(path):

    from importlib import import_module

    module_path, _, class_name = path.rpartition('.')

    mod = import_module(module_path)

    klass = getattr(mod, class_name)

    return klass

用法

In [59]: raise import_class_from_string('google.appengine.runtime.apiproxy_errors.DeadlineExceededError')()

---------------------------------------------------------------------------

DeadlineExceededError                     Traceback (most recent call last)

<ipython-input-59-b4e59d809b2f> in <module>()

----> 1 raise import_class_from_string('google.appengine.runtime.apiproxy_errors.DeadlineExceededError')()


DeadlineExceededError: 


查看完整回答
反对 回复 2019-08-15
  • 3 回答
  • 0 关注
  • 410 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信