Python 目标函数中省略了括号

Python 目标函数中省略了括号,python,Python,在Python中,调用名为check\u values的函数的线程创建如下: checking_thread = threading.Thread(target=check_values) 我的问题是为什么检查值的括号被省略了 如果包含它们会发生什么?Python中的函数是一类对象。它们可以作为参数传递给函数,分配给变量,或者通过“调用”它们来调用。调用函数的语法是引用函数名,然后紧接着用括号括起来。参数可以通过在括号中列出来传递给函数。例如: def check_values(x=0):

在Python中,调用名为
check\u values
的函数的线程创建如下:

checking_thread = threading.Thread(target=check_values)
我的问题是为什么
检查值的括号被省略了


如果包含它们会发生什么?

Python中的函数是一类对象。它们可以作为参数传递给函数,分配给变量,或者通过“调用”它们来调用。调用函数的语法是引用函数名,然后紧接着用括号括起来。参数可以通过在括号中列出来传递给函数。例如:

def check_values(x=0):
    print(x)

>>> check_values
<function check_values at 0x7fae489c7ea0>
>>> type(check_values)
<class 'function'>
>>> check_values()
0
>>> check_values(10)
10
>>> print(check_values)
<function check_values at 0x7fae488df400>
这会将名为
check\u values
的函数的引用作为
target
参数传递给
threading.Thread
函数,而不调用函数
check\u values

如果您想让
线程化.Thread
调用带有参数的函数,则需要分别传递这些参数,例如

checking_thread = threading.Thread(target=check_values, args=(100,))

该函数将被调用。谢谢,这个答案实际上解决了我稍后要修复的一个bug。
checking_thread = threading.Thread(target=check_values, args=(100,))