您可以将单行作为 python 线程的目标执行吗?

Can you execute a single line as a target of a python Thread?

我有以下代码:

errorThread = Thread(
    target=tkMessageBox.showerror("Error", b[-1][z:]),
    args=())
errorThread.daemon = True
errorThread.start()

我知道我可以创建另一个函数并传递参数,但出于好奇,您可以执行一行 python 代码作为 Python 线程的目标吗?

您可以使用 lambda expression 作为您的目标。也就是说,毕竟,lambda 的用途是:创建单表达式可调用对象,而不必在函数定义上花费整行。

errorThread = Thread(target=lambda: tkMessageBox.showerror("Error", b[-1][z:]))

您可以在 args 关键字参数中传递这些参数。像这样:

errorThread = Thread(
    target=tkMessageBox.showerror,
    args=("Error", b[-1][z:]))
errorThread.daemon = True
errorThread.start()