История изменений
Исправление E, (текущая версия) :
Pythonic way:
Thingy = {"point":Point, "cat":Cat}
thing = Thingy["cat"](500, "green")
thing = Thingy["point"](1, -1)
Паттерн «виртуальный конструктор»:
- def __init__(self, what, prop1, prop2):
+ @staticmethod
+ def create(what, prop1, prop2):
Можно ещё поизвращаться с оператором __new__, но на это моветон.
Исходная версия E, :
Pythonic way:
Thingy = {"point":Point, "cat":Cat}
thing = Thingy["cat"](500, "green")
thing = Thingy["point"](1, -1)
Паттерн «виртуальный конструктор»:
- def __init__(self, what, prop1, prop2):
+ @staticmethod
+ def create(self, what, prop1, prop2):
Можно ещё поизвращаться с оператором __new__, но на это моветон.