【问题标题】:How to convert a string to a class name? [duplicate]如何将字符串转换为类名? [复制]
【发布时间】:2018-07-24 09:03:42
【问题描述】:

我检查了I have a string whose content is a function name, how to refer to the corresponding function in Python?,但这不是我想问的问题。

问题是:我有一个字符串'ABC',我想创建一个ABC 类的实例:

my_obj = ABC ()

输入 'ABC' 是从 Python 参数 (argparse) 中读取的。

该类已定义并导入。

【问题讨论】:

    标签: python python-3.x oop


    【解决方案1】:

    您可以使用字典:

    d = {'ABC': ABC}  # where ABC is the class object
    
    my_obj = d['ABC']()
    

    这应该比使用global(不良实践)和eval(安全风险)的解决方案更可取。

    在您意识到类和类实例是 Python 中的第一类对象之前,这可能看起来很麻烦。你永远不应该依赖评估字符串来调用 Python 对象。明确,即使它不优雅。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      相关资源
      最近更新 更多