Всем привет!
Ищу способ сделать конструктор класса обработчика события каррируемым. Звучит достаточно дико для людей, знакомых с ООП, но суть примерно в этом. Если кратко, то http-серверу мне надо передать класс обработчика запросов (у которого должно быть 3 параметра). Таких серверов, имеющих дело с одной БД, должно быть штуки 3, работающие на разных портах. Соответственно, я не хочу в каждом конструкторе писать один и тот же код соединения с БД, а хочу передать параметром в конструктор обработчика само соединение с БД (pymysql) в соответствии с канонами Dependency Injection. Проблема в том, что для написания этого кода вероятнее всего должны понадобиться placeholder-ы (по крайней мере, в С++ было бы так), для того, чтобы сказать, какие аргументы мы передаем дальше на обработку, а какие - используем сейчас.
В общем, я хочу примерно такой код:
class ServerHandler(BaseHTTPRequestHandler):
def __init__(self, connection, a,b,c)
...
def run():
conn = pymysql.connect(host=LOCALHOST, user=DB_USER,
passwd=DB_PASS, db=DB_NAME)
server_address = (LOCALHOST, PORT)
httpd = HTTPServer(server_address, ServerHandler(conn, ...))
httpd.serve_forever()
conn.close()