2016-06-23 6 views
0

Я пытаюсь переопределить стандарт raw_input, чтобы у меня была «удаленная raw_input».Переопределить raw_input, чтобы получить ответ от удаленного клиента

Что мне нужно, это реализовать это overriden raw_input, поэтому, когда я использую его на своем сервере, он откроет окно сообщения на компьютере удаленного клиента и дождитесь его ответа. Получив ответ, я смогу продолжить свою программу.

Я много искал, как я могу это сделать, но я немного потерял в основном потому, что я новичок в python.

И я должен сделать это с raw_input, возможно ли это? Может ли кто-нибудь дать мне небольшое руководство?

UPDATE:

Один хороший пример того, что я пытаюсь добиться, как Jupyter обрабатывает raw_inputs.

В этом ноутбуке я просто запустить raw_input, то Jupyter создает текстовое поле и ждет моего ответа:

Jupyter textbox

А потом, когда я типа мой ответ он идет с кодом:

Jupyter textbox2

Итак, как Jupyter получает «посередине» raw_input, чтобы создать текстовое поле и дождаться ввода пользователем?

ответ

0

Переопределение встроенных устройств, как правило, не рекомендуется по ряду причин. Вместо этого попробуйте следующее: receive_input вместо raw_input.

SERVER = 1 
CLI = 2 
... 
config.input_type = CLI # in cli code, or SERVER in server code 
... 
def receive_input(cfg): 
    if cfg.input_type == CLI: 
     return raw_input() 
    elif cfg.input_type == SERVER: 
     # retrieve from somewhere else 

Jupyter вероятно сканирует AST на входе для raw_input называется как функция и заменяет, что при их реализации.

Смежные вопросы