Python3 线程组合 .start() 不创建连接属性

Python3 threading combining .start() doesn't create the join attribute

这很好用:

def myfunc():
    print('inside myfunc')

t = threading.Thread(target=myfunc)
t.start()
t.join()
print('done')

然而,这显然正确地创建和执行了线程:

def myfunc():
    print('inside myfunc')

t = threading.Thread(target=myfunc).start()
t.join()
print('done')

当它命中 join() 时生成以下致命错误:

AttributeError: 'NoneType' object has no attribute 'join'

我本以为这些说法是等价的。有什么不同?

t = threading.Thread(target=myfunc).start()

threading.Thread(target=myfunc) returns 一个线程对象,然而 object.start() returns None。这就是为什么会出现 AttributeError。