当前位置: 首页 > 后端技术 > Python

Python继承了Thread的一种玩法

时间:2023-03-26 11:33:30 Python

最近在看ncclient源码,目的是从中学习一些python的基础知识,解决工作中可能出现的问题。今天总结的知识点是Thread的继承和start执行后的动作。'''测试线程继承'''fromthreadingimportThreadclassSessionn(Thread):defrun(self):raiseNotImplementedErrordef_post_connect(self):print('start...')self.start()print('started')classSSHSession(Sessionn):defrun(self):print('helloworld')classManager:def__init__(self):super().__init__()self._session=SSHSession()self._session._post_connect()m=Manager()运行结果如下:start...helloworldstarted由于SSHSession和Session是继承关系,Session继承Thread,运行self.start时会调用SSHSession的run方法。启动和运行方法(官网)start()[](https://docs.python.org/zh-cn...“目标永久链接”)启动线程活动。一个线程中只能调用一次。它安排在单独的控制进程中调用对象的run()方法。(表示start调用run方法)如果在同一个线程对象中多次调用此方法,将抛出RuntimeError。run()[](https://docs.python.org/zh-cn..."永久链接到目标")表示线程活动的方法。您可以在子类型中覆盖此方法。标准的run()方法调用作为_target_参数传递给此对象构造函数的可调用对象(如果有),位置参数和关键字参数分别取自_args_和_kwargs_参数。