覆盖raw_input以从远程客户端获取答案

时间:2016-06-23 10:13:33

标签: python python-2.7 python-3.x

我试图覆盖标准raw_input,因此我可以拥有一个"远程raw_input"。

我需要的是实现这个overriden raw_input所以当我在我的服务器上使用它时,它将在远程客户端的计算机中打开一个消息框并等待他的回答。收到回复后,我就可以继续我的计划了。

我一直在搜索我如何做到这一点,但我有点迷失,主要是因为我是python的新手。

我必须使用raw_input执行此操作,这可能吗?有人可以给我一点指导吗?

更新:

我试图实现的一个很好的例子是Jupyter如何处理raw_inputs。

在这个笔记本中我只是运行一个raw_input,然后Jupyter创建一个文本框并等待我的回答:

Jupyter textbox

然后在我输入答案之后,继续使用代码:

Jupyter textbox2

那么Jupyter是如何在中间获得的? raw_input创建文本框并等待用户输入?

1 个答案:

答案 0 :(得分: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可能会扫描被称为函数的raw_input输入的AST,并用它们的实现替换它。