匿名函数代替python中的函数ref

spi*_*nt0 1 python

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)

Tim*_*ers 6

Python 的语法不允许在参数列表中包含语句lambda但是,通常您可以使用 a ,例如:

threading.Timer(1, lambda: GPID.output(26, GPIO.LOW))
Run Code Online (Sandbox Code Playgroud)

过度使用,这可能会导致不可读的代码。如果您开始x if b else y在 lambda 中填充多个子句,您就知道它是“过度使用的” ;-)