在Python中,可以使用globals()
函数和type()
函数来按照名称实例化子类。
首先,需要定义一个基类,并定义几个子类:
class BaseClass:
def __init__(self, name):
self.name = name
class SubClass1(BaseClass):
def __init__(self, name):
super().__init__(name)
self.attribute = "SubClass1"
class SubClass2(BaseClass):
def __init__(self, name):
super().__init__(name)
self.attribute = "SubClass2"
接下来,可以编写一个函数来根据类名字符串实例化子类:
def create_instance(class_name, name):
cls = globals().get(class_name)
if cls and issubclass(cls, BaseClass):
return cls(name)
else:
raise ValueError("Invalid class name")
使用该函数可以按照名称实例化子类:
instance1 = create_instance("SubClass1", "instance1")
instance2 = create_instance("SubClass2", "instance2")
这样就可以根据名称实例化不同的子类,并传递相应的参数。