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