lambda在绑定槽函数时的应用
槽函数需要的是函数本身,而不是函数的执行结果,所以:
1. 如果槽函数没有参数:
self.gw_Btn.clicked.connect(self.ne_event)
def ne_event(self):
pass
2. 如果槽函数有参数:
self.gw_Btn.clicked.connect(lambda:self.ne_event(ne))
def ne_event(self, nEdit):
pass
不使用lambda的话会报错:
TypeError: argument 1 has unexpected type 'NoneType'
python加括号和不加括号的区别:
(1)不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不须等该函数执行完成
(2)带括号(参数或者无参),调用的是函数的执行结果,须等该函数执行完成的结果
1 1 def test(a): 2 2 return a 3 3 4 4 5 5 if __name__ == '__main__': 6 6 s = test(6) # 传入参数,等待函数执行完,把获取函数的返回值赋给s 7 7 print(type(s)) 8 8 print(s) 9 9 10 10 s = test # 把test这个函数整体赋给s,相当于别名 11 11 print(type(s)) 12 12 print(s) 13 14 输出结果: 15 <class 'int'> 16 6 17 <class 'function'> 18 <function test at 0x000001B506C19318>
浙公网安备 33010602011771号