2016-06-23 6 views
0

Ich versuche, den Standard raw_input zu überschreiben, so dass ich eine "Remote-Raw_input" haben kann.Override raw_input, um Antwort von Remote-Client zu erhalten

Was ich brauche ist, um diese overriden raw_input zu implementieren, so wenn ich es auf meinem Server verwende, wird es eine Nachricht im Remote-Client-Computer öffnen und auf seine Antwort warten. Nachdem ich die Antwort erhalten habe, kann ich mit meinem Programm fortfahren.

Ich habe viel darüber gesucht, wie ich das machen kann, aber ich bin ein wenig verloren, vor allem weil ich neu bei Python bin.

Und ich muss dies mit raw_input tun, ist das möglich? Kann mir jemand eine kleine Anleitung geben?

UPDATE:

Ein gutes Beispiel dafür, was ich zu erreichen bin versucht, wie Jupyter Griffe raw_inputs.

In diesem Notebook habe ich einfach eine raw_input laufen, dann schafft Jupyter ein Textfeld und wartet auf meine Antwort:

Jupyter textbox

Und dann, nachdem ich es mit dem Code geht auf meine Antwort geben:

Jupyter textbox2

Wie also bekommt Jupyter "in der Mitte" des raw_input, um ein Textfeld zu erstellen und auf die Benutzereingabe zu warten?

Antwort

0

Das Überschreiben von Buildern ist im Allgemeinen aus mehreren Gründen nicht zu empfehlen. Versuchen Sie stattdessen etwas wie folgt mit receive_input anstelle von 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 scannt wahrscheinlich den AST des Eingangs für raw_input als Funktion aufgerufen und ersetzt, dass bei der Umsetzung.

Verwandte Themen