Я работаю над проектом, целью которого является увеличение сообщений сокета Python с частичной информацией о заказе. Библиотека, которую я создаю, написана на Python и должна быть помещена в существующие системные сообщения, отправленные через функции сокета.
Я прочитал некоторые из ресурсов, а именно ответ @Omnifarious по этому вопросу python-importing-from-builtin-library-when-module-with-same- имя-существует
Существует очень уродливая и ужасная вещь, которую вы можете сделать, задействовать механизм импорта. Это то, что вам нужно вероятно, не делать, но, скорее всего, это сработает. Он превращает ваш календарь модуль в гибрид системного календарного модуля и ваш календарь модуль.
Я реализовал решение механизма импорта, но мы решили, что это не то направление, которое мы хотели бы принять, поскольку оно слишком сильно зависит от среды. Решение объединить классы в гибрид, а не полагаться на механизмы импорта, представляется лучшим в моем случае.
Почему гибрид называется уродливым и ужасным решением? Я хотел бы начать реализовывать его в своем проекте, но я опасаюсь предупреждений. Это кажется немного хакерским, но поскольку он будет частью установки script, не было бы нормально запустить этот раз?
Вот фрагмент кода, где интерпозиция должна перехватывать сообщение сокета перед его отправкой:
class vector_clock:
def __init__(self):
"""
Initiate the clock with the object
"""
self.clock = [0,0]
def sendMessage(self):
"""
Send Message to the server
"""
self.msg = "This is the test message to that will be interposed on"
self.vector_clock.increment(0) # We are clock position 0
# Some extraneous formatting details removed for brevity….
# connectAndSend needs interpositioning to include the vector clock
self.client.connectAndSend(totalMsg);
self.client.s.close()