У меня есть базовый класс, объекты которого я всегда хочу создать с помощью фабричного объекта.Использовать фабричный объект для инициализации базового класса
class Shape:
def __init__(self):
pass
class ShapeMgr:
def __init__(self):
self.allShapes = []
def new(self):
newShape = Shape()
self.allShapes.append(newShape)
return newShape
Я также получил классы из этого базового класса.
class Circle(Shape):
def __init__(self):
pass
Я хочу инициализировать базовый класс объектов производного класса от фабричного объекта. IE, я хочу, чтобы создал часть формы круга, вызывая ShapeMgr.new().
Я попытался определения конструктора Shape следующим образом:
SM = ShapeMgr()
class Circle:
def __init__(self):
global SM
super() = SM.new()
Но он говорит мне, что я не могу присвоить результат вызова функции. Если я вместо этого попробовать:
self = SM.new()
Тогда позже, когда я пытаюсь получить доступ к методам Circle, он говорит, что формы не имеют методы Circle.
Можно ли использовать фабрику для создания базовой части класса объекта производного класса?
У каждого ребенка формы действительно нужен собственный менеджер? –
Каждый из ваших 'def' должен иметь 'self' в качестве первого параметра. –
-Ignacio: Да, в моем действительном приложении. Но это не имеет отношения к вопросу, поэтому я удалил его. -Этот: фиксированный. – AngryPuffin