python - 如何创建返回 `True` 的匿名函数?

标签 python python-2.7 lambda

我有一些代码只有在连接了特定的硬件设备时才会运行。在调试时我想放弃这个限制。

我尝试用一​​个只返回 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

引用 official documentation ,

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/

相关文章:

python - Django 添加分页到搜索表单页面

python - 将训练和测试数据保存在文件中

c# - 在通用参数中使用多态性

data-structures - 如何使用经典的自定义数据结构作为 Java 8 流

c++ - 是否可以在 XCode 的 .cpp 文件中使用 lambda 表达式?

python - 将 UTC 时间戳转换为日期时间对象,将夏令时考虑在内

python - 在 python 中表达 berkeley db 中的多个列?

python - 日期时间对象

python-2.7 - 我正在尝试根据肝脏疾病数据集构建随机森林分类器。但 fit 方法返回错误,例如 :

python - pygtk 将图像缩放到宽度和高度