例如,我有一个基类如下:
class BaseClass(object):
def __init__(self, classtype):
self._type = classtype
Run Code Online (Sandbox Code Playgroud)
从这个课程中我得到了其他几个类,例如
class TestClass(BaseClass):
def __init__(self):
super(TestClass, self).__init__('Test')
class SpecialClass(BaseClass):
def __init__(self):
super(TestClass, self).__init__('Special')
Run Code Online (Sandbox Code Playgroud)
是否有一种不错的pythonic方法可以通过函数调用动态创建这些类,该函数调用将新类放入当前范围,如:
foo(BaseClass, "My")
a = MyClass()
...
Run Code Online (Sandbox Code Playgroud)
因为我会需要这样的注释和问题:派生类都具有完全相同的内部结构,区别在于构造函数采用了许多以前未定义的参数.因此,举例来说,MyClass需要的关键字a,而类的构造函数TestClass需要b和c.
inst1 = MyClass(a=4)
inst2 = MyClass(a=5)
inst3 = TestClass(b=False, c = "test")
Run Code Online (Sandbox Code Playgroud)
但是他们永远不应该使用类的类型作为输入参数
inst1 = BaseClass(classtype = "My", a=4)
Run Code Online (Sandbox Code Playgroud)
我得到了这个工作,但更喜欢另一种方式,即动态创建的类对象.