我有一个A级。
Class A():
....
它有一个方法B,它有一个位置参数c和关键字参数d。
def B(self, c, d=None):
....
现在,我想使用args o = A()
运行对象c1, d1
的方法B.我试过以下:
t = thread.Thread(target=o.B, args=(c1,), kwargs={'d':d1})
t.start()
t.join()
但它不起作用。因此我也试过了。
t = thread.Thread(target=A.B, args=(o, c1), kwargs={'d':d1})
t.start()
t.join()
这也行不通。在t.join()
之后执行才会失败。我在Thread Class
的{{1}}的第一条指令中设置断点,但代码永远不会到达那里。
答案 0 :(得分:0)
(代表OP 发布)。
问题是在方法B()
中,我使用的是yield
语句。非常令人惊讶的是,在运行代码时,没有生成任何异常,解释器根本没有输入方法B()
并且选择跳过它使得很难发现错误。