Форум сайта python.su
0
Приветствую всех.
Подскажите пожалуйста, как сделать так, чтоб в конце завершения класса выполнился еще кусок кода?
У меня есть класс, в котором к примеру 2 метода:
- 1ый метод генерирует информацию, передает ее 2ому методу
- 2ой метод обрабатывает полученное инфо и записывает в бд
- все повторяется, пока 1ый метод не перестанет генерировать информацию
По окончанию этого “цикла” мне нужно запустить код, который бы вывел отчет о проделанной работе.
Первым делом пришла мысль как то перехватить вот этот вывод, который отображается по завершению выполнения класса: <our_module.Our_Class object at 0x7fc000353518>. Мол, если он выводится, то сначала запустить код отчета, а потом собственно отобразить этот вывод. Можно ли так сделать? Как? Или есть более правильный способ?
Благодарю.
Отредактировано TitanFighter (Ноя. 11, 2015 14:24:06)
Офлайн
857
Приведи код.
Офлайн
568
Офлайн
568
Офлайн
0
py.user.nextВо время написания примера дошло, что у меня есть __init__, в конец которого можно всунуть то, что мне нужно
Приведи код.


our_dict = {'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]} def report(): print(x.summ) class Start: a=0 summ=[] def __init__(self): self.one(our_dict) report() # добавил нужную мне функцию :) def one(self, d): for item in d: a=0 for num in d[item]: a+=num self.two(a) def two(self, num): self.summ.append(num)
Отредактировано TitanFighter (Ноя. 11, 2015 16:12:08)
Офлайн
857
TitanFighterЯ так и думал, что ты не знаешь, зачем нужны классы.
Во время написания примера
Офлайн
0
py.user.nextТ.е. сделать так, чтоб внутри класса один метод ничего не передавал другому, а сделать функцию, которая будет получать данные от первого метода и передавать эти данные второму методу? Правильно? Т.е. функция выступает “буфером” между методами?
Нужно сделать класс, у которого методы не зависят друг от друга, а потом написать функцию, которая использует этот класс (его экземпляр), вызывая его методы, как надо.
Отредактировано TitanFighter (Ноя. 12, 2015 13:11:32)
Офлайн
857
TitanFighterФункция использует класс для достижения результата. А класс - это единица, которая умеет работать с данными разными способами.
Т.е. функция выступает “буфером” между методами?
Офлайн
0
Понял. Исправлю) Спасибо!
Едит: Навел порядок в своих классах. Сейчас смотрю на тот бардак и думаю, какой был кошмар. Через функцию управлять всем стало предельно удобно, а еще смог порешать несколько проблем.
Еще раз спасибо!)
Отредактировано TitanFighter (Ноя. 13, 2015 00:26:55)
Офлайн
568
py.user.next
Его методы insert(), append(), pop() друг с другом не связаны никак.
Офлайн