Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从字符串名Python创建类对象_Python_Class_Eval - Fatal编程技术网

从字符串名Python创建类对象

从字符串名Python创建类对象,python,class,eval,Python,Class,Eval,我有一个python模块,它调用同一模块中的多个其他类 class Main(object): def foo(self): return 'bar' def getClass(self, className, *args): return eval(className + "(%s)" % ",".join(args)) class A(object): def __init__(self, b): self._b = b class B(

我有一个python模块,它调用同一模块中的多个其他类

class Main(object):
   def foo(self):
      return 'bar'
   def getClass(self, className, *args):
      return eval(className + "(%s)" % ",".join(args))
class A(object):
   def __init__(self, b):
      self._b = b
class B(object):
   def __init__(self, c):
      self._c = c
我想做的就是这样。在类Main中,我想通过只知道类名并传入创建该类所需的变量来生成一个类对象

我现在可以做条件if/else,但我想知道这是否可能。我想我也可以使用eval,但我听说那可能是邪恶的

建议?评论?我有一个引用多个子类的类,而不是为每种类型创建一个类,我认为这样做会更容易


谢谢你

这里有几个问题。例如:。虽然被接受的答案使用eval,但提供了其他几种不使用eval的选项。eval可能不是正确的方法。如果您想在某些@classmethod中创建cls子类的实例,您可以在cls中查找