2 回答

TA贡献1824条经验 获得超8个赞
当你创建了“类的ChatServer(threading.Thread):”你到Python说,该类的ChatServer将继承的方法threading.Thread,即在所有的方法threading.Thread将被“复制”了的ChatServer。
如果需要,可以通过键入dir(class)来检查类中包含的方法。
目录(线程。线程)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_bootstrap', '_bootstrap_inner', '_delete', '_exc_info', '_initialized', '_reset_internal_locks', '_set_ident', '_set_tstate_lock', '_stop', '_wait_for_tstate_lock', 'daemon', 'getName', 'ident', 'isAlive', 'isDaemon', 'is_alive', 'join', 'name', 'run', 'setDaemon', 'setName', 'start']
如您所见, threading.Thread 有两个特殊的方法:run和start。
在您的情况下,创建def run()时,您继承的继承的run方法将被覆盖...但是,方法start仍然保留在chatServer类中,请在控制台中键入dir(chatServer)进行检查。该方法 start 有一个可调用对象__call__
,它调用 doh' 类中的 run(self) 方法。因此,这就是它正在运行的原因。
添加回答
举报