ont une fonction de la forme:rapide d'entrée utilisateur personnalisée (à constructeur objet) ne semble pas/apparaît de façon sporadique lorsqu'il est appelé à partir d'un thread séparé
def setup_my_object():
my_object = My_Object()
my_object_daemon = Pyro4.core.Daemon(port=55666)
Pyro4.Daemon.serveSimple({my_object: "my.object"},ns = False,daemon = my_object_daemon)
bibliothèque Pyro4 permet d'accéder à l'objet sur le réseau. Parce que le processus principal crée plusieurs objets différents, un thread séparé est créé à l'aide:
def main():
threaded_object = threading.Thread(target = setup_my_object)
threaded_object.start()
L'objet est de la forme (constructeur en réalité est plus complexe). Le principal() s'exécute sur un serveur linux, lancé à partir d'une console python.
class My_Object(object):
def __init__(self):
name_option = input('\nDo you want to enter a name? [y/n]:\n')
if (name_option == 'y')
self.m_name = add_name()
def add_name(self):
name = input('\nPlease enter the name: \n')
return(name)
Le problème est quand je lance Main() la console ne me promet jamais "Voulez-vous entrer un nom?". Je peux frapper - attendre 30 secondes - rien. Appuyez sur entrer deux fois - attendez 30 secondes rien. Seulement quand je clique sur entrer comme cinq fois (et par inadvertance le sixième) il affichera "Voulez-vous entrer un nom?". Que se passe-t-il et comment puis-je éviter cela, c'est-à-dire obtenir une impression instantanée de "Voulez-vous entrer un nom?"?
Informations supplémentaires: Je ne vois pas ce problème lors du lancement sur une machine Windows; le problème est seulement sur une machine Linux.