양식의 기능 유무 :사용자 정의 사용자 입력 프롬프트 (생성자를 객체에) 나타나지 않습니다/표시 산발적으로 별도의 스레드에서 호출 할 때
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)
Pyro4 라이브러리가 네트워크를 통해 개체에 액세스 할 수 있습니다. 주 공정은 여러 객체를 생성하므로, 별도의 스레드를 사용하여 생성된다 :
def main():
threaded_object = threading.Thread(target = setup_my_object)
threaded_object.start()
목적하는 형태이다 (실제로 생성자는 더 복잡하다).
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)
main()은 리눅스 서버에서 실행되며, python 콘솔에서 실행됩니다. 문제는 내가 main()을 실행할 때 콘솔이 절대로 "이름을 입력 하시겠습니까?"라고 약속하지 않는다는 것입니다. 나는 들어가기 위하여 정다 - 30 초를 기다린다 - 아무것도. 두 번 입력하십시오. 30 초 동안 아무것도 기다리지 마십시오. 5 번 (실수로 여섯 번째)과 같이 입력 할 때만 "이름을 입력 하시겠습니까?"라는 메시지가 표시됩니다. 무슨 일이 벌어지고 있으며 어떻게 피할 수 있습니까? 즉, "이름을 입력 하시겠습니까?"라는 즉석 출력을 얻으시겠습니까?
추가 정보 : Windows 컴퓨터에서 시작할 때이 문제가 표시되지 않습니다. 문제는 Linux 컴퓨터에서만 발생합니다.