target后面的方法加括号和不加括号分别什么意思?有什么不一样?为什么执行结果顺序不一样?
target=thread_work
表示target这个参数是thread_work这个函数
target=thread_work()
表示target这个参数是thread_work这个函数执行之后的返回值
我举一个例子:
def thread_work():
return lambda : print("hello")
对于这个函数,前者线程执行不会输出,因为这个函数本身没有输出,它返回了一个函数
后者会输出 hello,因为它将 thread_work() 先执行,得到了匿名函数,这个匿名函数本身作为线程执行,会输出 hello
不加括号表示引用这个函数的指针,加括号表示这个指针返回的值。不加括号的不会有具体返回值,它只是一个的引用,后者反之。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
results=[]
for i in range(len(nums)):
for j in range(i+1,len(nums)):
if nums[i] + nums[j] == target:
results.append(i)
results.append(j)
return results