在threading.timer你传递一个函数的名称(下面的例子)。是否可以用函数体替换它,这样我就不必费心定义另一个琐碎的函数了
def PulseLed(self):
GPIO.output(26, GPIO.HIGH)
self.ledTimer = threading.Timer(1, self.TurnOffLed)
self.ledTimer.start()
def TurnOffLed(self):
GPIO.output(26, GPIO.LOW)
Run Code Online (Sandbox Code Playgroud)
Python 的语法不允许在参数列表中包含语句。lambda但是,通常您可以使用 a ,例如:
threading.Timer(1, lambda: GPID.output(26, GPIO.LOW))
Run Code Online (Sandbox Code Playgroud)
过度使用,这可能会导致不可读的代码。如果您开始x if b else y在 lambda 中填充多个子句,您就知道它是“过度使用的” ;-)