基于类

时间:2015-05-27 02:09:18

标签: python

有没有办法使用字符串(在我的情况下从文件中读取)来查找名称与字符串匹配的类,然后创建该类的实例。例如:

class FirstClass:
    def __init__(self, arg1):
        self.arg = arg1

values = ','.split('FirstClass', 'argument')
# need the magic for this:
values[0](*values[1:])

但当然使用values[0]在那里不起作用,因为它是一个字符串,而不是一个类。有没有办法自动将字符串转换为那里的类?特别是如果我有很多类,并且事先无法知道要实例化哪一个,比如从CSV读取值并希望正确的类处理一行。

1 个答案:

答案 0 :(得分:4)

您可以分别使用locals()globals()按名称访问变量。在你的情况下,这将是这样的:

locals()[values[0]](*values[1:])