python - 使父脚本在调用另一个脚本后立即继续

标签 python python-2.7 class object exit-code

我使用的是 Python 2.7。

class Client():

    def __init__(self, host, server_port):
        """
        This method is run when creating a new Client object
        """

        self.host = 'localhost'
        self.server_Port = 1337

        # Set up the socket connection to the server
        self.connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.receiver = None
        self.myParser = MessageParser()

        # TODO: Finish init process with necessary code
        self.run()

    def run(self):
        self.connection.connect((self.host, self.server_Port))
        self.receiver = MessageReceiver(self, self.connection) #On this line, a MessageReceiver object is instantiated.
        self.take_input()


class MessageReceiver(Thread):

    def __init__(self, client, connection):
        super(MessageReceiver, self).__init__()

        self.myClient = client
        self.connection = connection

        self.daemon = True
        self.run()

    def run(self):
        self.myClient.receive_message(self.connection.recv(1024)) #This line blocks further progress in the code.

当 Client 对象中的 run-方法实例化 MessageReceiver 对象时,我希望立即执行 Client 中的下一行代码,而不是等待 MessageReceiver 的退出代码。有办法做到这一点吗?

最佳答案

self.run()

改为调用start()run() 在当前线程中执行run方法。 start() 启动另一个线程并在那里调用它。

self.start()

关于python - 使父脚本在调用另一个脚本后立即继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36034804/

相关文章:

java - 原因: actual argument Class<ie_home_com> cannot be converted to Class<?通过方法调用转换扩展了TestCase>

c++ - 为什么这段看似简单的 C++ 代码会产生段错误?

java - 调用类/枚举与其对象不同 - Java

python - 选择过去 X 个月的数据

python-2.7 - pandas:两个系列之间的差异返回 None

linux - 执行 python 文件时出现意外标记附近的语法错误

Python Flask SQLalchemy 外键未保存在数据库中 - 一对多

python - 导入错误 : cannot import name 'ImageTK'

python - Python 中的洪水填充

python - 查找两个日期之间月份的最​​佳方法