Я пытаюсь создать то, что вера (по моему невежеству) известна как фабрика классов. По сути, у меня есть родительский класс, который я хотел бы принять аргумент __init__
и стать одним из нескольких дочерних классов. Я нашел пример этого рекомендуемого в StackOverflow здесь , и это выглядит так:
class Vehicle(object):
def __init__(self, vtype):
self.vtype = vtype
if vtype=='c':
self.__class__ = Car
elif vtype == 't':
self.__class__ = Truck
Я слышал , что изменение __type__
может быть опасным. Есть ли негативные подходы к этому подходу? Я бы использовал функцию для динамического создания объектов, но она не будет работать с существующим кодом, который я использую. Ожидается класс, в котором я планирую выполнить динамическое изменение типа.
Спасибо!