LINUX.ORG.RU

История изменений

Исправление 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__, но на это моветон.