我有一些代码只有在连接了特定的硬件设备时才会运行。在调试时我想放弃这个限制。
我尝试用一个只返回 True
的匿名函数临时替换检查硬件是否已连接的函数来做到这一点:
import drm
def OnStartButton(self, evt):
# Don't check for dongle in debug mode.
if Globals.DEBUG:
# Store the original function so we can reassign it later.
func_store = drm.is_dongle_attached
drm.is_dongle_attached = lambda x: return True
if drm.is_dongle_attached():
do_some_stuff()
if Globals.DEBUG:
# Reassign function back to the original.
drm.is_dongle_attached = func_store
但是,这似乎不是一个合法的结构,因为我在网上收到了一个SyntaxError
:
drm.is_dongle_attached = lambda x: return True
^
最佳答案
您不能在 lambda
函数中使用 return
语句。实际上,您只能在其中使用表达式。所以,简单地做
lambda x: True
functions created with lambda expressions cannot contain statements.
实际上,在您的情况下,您调用 is_dongle_attached
时没有任何参数。因此,您需要定义不带参数的 lambda
函数,如下所示
drm.is_dongle_attached = lambda: True
关于python - 如何创建返回 `True` 的匿名函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34393550/