Я не силен в питоне, а ООП в нем же начал использовать только в текущем скрипте.
Сейчас пишу слушатель и разбиратель логов, полученных по UDP. В нем такаяиерархия:
server (запускной файл)
- LogHandler
- ProcessAction
- Database
Код запускного файла вот (в процессе разработки еще):
#!/usr/bin/python # Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. from twisted.internet import reactor from twisted.internet.protocol import DatagramProtocol from LogHandler import LogHandler from Database import Database def main(): reactor.listenUDP(29876, ProcessUDP()) reactor.run() if __name__ == '__main__': main() class ProcessUDP(DatagramProtocol): def datagramReceived(self, datagram, address): handler = LogHandler() result = handler.parseLine(datagram) if result: print result
При создании объекта Database в конструкторе создается соединение с MySQL, и мне нужно его поддерживать открытым на протяжении всего цикла reactor.run(). Тоесть объект Database должен создаваться единожды, и должен быть уникальным на протяжении всей жизни скрипта.
Как же это сделать правильно? Может синглтон? Глобальный объект? еще какой способ?
Спасибо за ответы!)