У меня есть определение класса c и некоторые определения внутреннего класса для этого класса:
class DoXJob():
def __init__(self, param1, param2):
<choose an inner class to use>
def DoIt(self):
pass
def Finalize(self):
<do finalization>
class DoXInSomeWay():
def __init__(self):
....
....
def DoIt(self):
...
class DoXInSomeOtherWay():
def __init__(self):
....
....
def DoIt(self):
...
Логика проста, у меня есть некоторые определения внутреннего класса для обработки задания, и я вызываю DoXJob
с некоторыми параметрамиЗатем он решает, какой внутренний класс будет использоваться, и переопределит метод DoXJob.DoIt
методом выбранного метода внутреннего класса (DoXInSomeOtherWay.DoIt
или DoXInWay.DoIt
)
obj = DoXJob(param1, param2)
obj.DoIt()
Все хорошо, что я хочудолжен вызывать DoXJob.Finalize
из классов инер, как вызов его из DoXInSomeOtherWay.DoIt
или DoXInWay.DoIt
.Но я не знаю, как справиться с этим, и правильно ли это.Или лучше сделать как DoXJob
вызов метода вроде:
obj = DoXJob(param1, param2)
obj.DoIt()
obj.Finalize()