在 Python 中调用函数列表的惯用方式是什么?

2024-02-03

我有一个回调函数列表,当事件触发时我需要调用这些函数。 这是惯用的Python吗?

def first_callback(m):
  print 'first ' + m

def second_callback(m):
  print 'second ' + m

lst = [first_callback, second_callback]

map(lambda x: x("event_info"),lst) #is this how you do it?

Use map仅适用于没有副作用的函数(例如print)。也就是说,仅将其用于仅返回某些内容的函数。在这种情况下,常规循环更惯用:

for f in lst:
    f("event_info")

Edit:另外,从 Python 3.0 开始,map http://docs.python.org/3.0/library/functions.html#map返回一个迭代器而不是列表。因此,在Python 3.0中,问题中给出的代码不会调用any函数,除非生成器中的所有元素都被显式求值(例如,通过封装对map inside list http://docs.python.org/3.0/library/functions.html#list)。幸运的是2to3 http://docs.python.org/library/2to3.html工具会对此发出警告:

File map.py:

map(lambda x: x, range(10))

2to3-3.0 map.py output:

RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
--- map.py (original)
+++ map.py (refactored)
@@ -1,1 +1,1 @@
-map(lambda x: x, range(10))
+list(map(lambda x: x, list(range(10))))
RefactoringTool: Files that need to be modified:
RefactoringTool: map.py
RefactoringTool: Warnings/messages while refactoring:
RefactoringTool: ### In file map.py ###
RefactoringTool: Line 1: You should use a for loop here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中调用函数列表的惯用方式是什么? 的相关文章

  • Mac OS 上的诗歌安装失败,显示“should_use_symlinks”

    我正在尝试使用以下命令安装诗歌 curl sSL https install python poetry org python3 但它失败了 但有以下例外 例外 此版本的 python 无法在不使用符号链接的情况下创建 venvs 下面是详
  • scipy 将一个稀疏矩阵的所有行附加到另一个稀疏矩阵

    我有一个 numpy 矩阵 想在其中附加另一个矩阵 这两个矩阵的形状为 m1 shape 2777 5902 m2 shape 695 5902 我想将 m2 附加到 m1 以便新矩阵的形状为 m new shape 3472 5902 当
  • 如何在 Windows 64 上安装 NumPy?

    NumPy 安装程序在注册表中找不到 python 路径 无法安装 需要 Python 2 5 版本 但在注册表中未找到该版本 OK 我必须修改注册表吗 我已经修改了 PATH 以指向Python25安装目录 我可以检查一下您使用的是什么安
  • Twisted 的 Deferred 和 JavaScript 中的 Promise 一样吗?

    我开始在一个需要异步编程的项目中使用 Twisted 并且文档非常好 所以我的问题是 Twisted 中的 Deferred 与 Javascript 中的 Promise 相同吗 如果不是 有什么区别 你的问题的答案是Yes and No
  • Sublime Text 插件开发中的全局 Python 包

    一 总结 我不知道 Sublime Text 插件开发人员如何使用 Sublime Text 查找全局 Python 包 而不是 Sublime Text 目录的 Python 包 Sublime Text使用自己的Python环境 而不是
  • 使用 pygame 显示 unicode 符号

    我检查了其他答案 但不明白为什么我的代码错误地显示 This is what I currently see https i stack imgur com 8tNIK png 这是关于文本渲染的相关代码 font pygame font
  • python 中的并行处理

    在 python 2 7 中进行并行处理的简单代码是什么 我在网上找到的所有示例都很复杂 并且包含不必要的代码 我该如何做一个简单的强力整数分解程序 在每个核心 4 上分解 1 个整数 我真正的程序可能只需要2个核心 并且需要共享信息 我知
  • 为什么删除临时文件时出现WindowsError?

    我创建了一个临时文件 向创建的文件添加了一些数据 已保存 然后尝试将其删除 但我越来越WindowsError 编辑后我已关闭该文件 如何检查哪个其他进程正在访问该文件 C Documents and Settings Administra
  • Kivy - 有所有颜色名称的列表吗?

    在 Kivy 中 小部件 color属性允许输入其值作为字符串颜色名称 也 例如在 kv file Label color red 是否有所有可能的颜色名称的列表 就在这里 来自Kivy 的文档 https kivy org doc sta
  • 保留完整姓氏,在 pandas 列中获取名字的首字母(如果有的话,还有中间名)

    我有一个 pandas 数据框 其中有一列表示几位网球运动员的姓氏和姓名 如下所示 Player 0 Roddick Andy 1 Federer Roger 2 Tsonga Jo Wilfred 我想保留完整的姓氏并获取姓名的首字母和中
  • 如果未引发异常,则通过 Python 单元测试

    在Python中unittest框架 是否有一种方法可以在未引发异常的情况下通过单元测试 否则会因 AssertRaise 而失败 如果我正确理解你的问题 你could做这样的事情 def test does not raise on va
  • 在没有模型的情况下将自定义页面添加到 django admin

    我正在尝试在没有模型关联的情况下向管理员添加自定义页面 这就是我迄今为止所取得的成就 class MyCustomAdmin AdminSite def get urls self from django conf urls import
  • .pyx 文件出现未知文件类型错误

    我正在尝试构建一个包含 pyx 文件的 Python 包 pyregion 但在构建过程中出现错误 检查以下输出 python setup py build running build running build py creating b
  • 通过索引访问Python字典的元素

    考虑一个像这样的字典 mydict Apple American 16 Mexican 10 Chinese 5 Grapes Arabian 25 Indian 20 例如 我如何访问该字典的特定元素 例如 我想在对 Apple 的第一个
  • Matplotlib 中 x 轴标签的频率和旋转

    我在下面编写了一个简单的脚本来使用 matplotlib 生成图形 我想将 x tick 频率从每月增加到每周并轮换标签 我不知道从哪里开始 x 轴频率 我的旋转线产生错误 TypeError set xticks got an unexp
  • 如何在 pandas 中使用 read_fwf 跳过空行?

    I use pandas read fwf http pandas pydata org pandas docs stable generated pandas read fwf htmlPython pandas 0 19 2 中的函数读
  • 使用 Pandas 计算 delta 列

    我有一个数据框 如下所示 Name Variable Field A 2 3 412 A 2 9 861 A 3 5 1703 B 3 5 1731 A 4 0 2609 B 4 0 2539 A 4 6 2821 B 4 6 2779 A
  • Python:IndexError:修改代码后列表索引超出范围

    我的代码应该提供以下格式的输出 我尝试修改代码 但我破坏了它 import pandas as pd from bs4 import BeautifulSoup as bs from selenium import webdriver im
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这

随机推荐

  • 想要改变react中div的颜色

    大家好 当我在输入中输入任何值时 我想更改 div 的颜色 但是我不知道如何设置背景颜色以及如何在状态下采用默认颜色 请帮助我 constructor props super props this state name color fals
  • 如何在构建时将 Silverlight XAP 复制到 clientbin

    我刚刚开始使用 Silverlight 最近向已建立的解决方案添加了一个 Silverlight 项目 在这个特定的场景中 我的解决方案包括一个现有的 ASP NET 网站 不是应用程序 Visual Studio 好心地提供将我的 Sil
  • Pycharm找不到解释器

    我从以下位置下载了 Pycharm 的学生版https www jetbrains com de de community education students https www jetbrains com de de community
  • PHP向上转换对象[重复]

    这个问题在这里已经有答案了 我可以将一个对象向上转换为其父对象吗 示例代码 class ClassA public function foo echo get class this class ClassB extends ClassA p
  • 如何测试 UIStoryBoard segue 是由 didSelectRow(at:) 触发的

    所以我有一个带有 UITableView 的故事板 有一个原型单元 其显示序列连接到另一个 UIViewController Example 小区标识符是 CellOne Segues 没有标识符 我的类是 tableView 的数据源和委
  • i18n 错误(错误:您正在传递未定义的模块!请检查您传递给 i18next.use() 的对象)

    我正在尝试在我的 Gatsby 项目中设置 i18n 我一直在逐步遵循本教程 https www gatsbyjs org blog 2017 10 17 building i18n with gatsby https www gatsby
  • 为什么 .join() 不能使用函数参数?

    为什么这样有效 返回 一 二 三 var words one two three main append p words join p 和这项工作 返回 列表 111 var displayIt function return the li
  • guvectorize 在 nopython 模式下不解析类型

    我正在努力解决 numba 错误Untyped global name is a subset Cannot determine Numba type of
  • React div 容器 onClick 与复选框 onChange 冲突

    在下面的 React 类中 我在 div 容器中有一个复选框 我想要单击容器来切换复选框 我也think我需要绑定复选框输入本身的 onChange 以处理诸如用户使用制表符 空格来切换复选框状态之类的事情 如果我don t指定 onCha
  • Kubernetes - 从作业连接到 cassandra 到不同的 pod

    当我尝试执行以下命令时 bin sh c cqlsh cassandra my namespace svc cluster local f path to schema cql 从我的工作中 我收到以下错误 Traceback most r
  • GZIP PlayFramework 2.0 中的响应正文

    我正在开发 Playframework 2 x 应用程序 我的应用程序中的控制器将 JSON 响应返回到浏览器 端点 我想知道是否有一种简单的方法来启用响应正文的 GZIP 压缩 目前在 2 0 4 版本中 对于非资产没有简单的方法 对于
  • 使用 Angular 5 的 IE 11 兼容性错误

    我已经构建了 Angular 应用程序 然后在服务器中运行它 我收到的错误未在本地主机中显示 Unable to get property onHover of undefined or null reference File Chart
  • 按列值将数据拆分为不同的工作表

    假设我有一个工作表 A 列中有多个不同的值 有没有办法创建一个宏 将列条目为 0 的所有行放入一个单独的工作表中 所有行的条目 1 都放在另一个工作表中 依此类推 我的第一直觉是创造一些东西 1 按相关列排序 2 使用 IF 语句检查前一个
  • ListViewItem水平拉伸UWP 10

    我想水平拉伸ListView在UWP 10中 我还设置了HorizontalContentAlignment to Stretch 它有点有效 但并不完全是我想要的结果 我将 ListView 背景设置为 Aqua 因此您可以看到 List
  • 在另一个类中创建类的实例(使用通用示例)

    我正在通过书籍和互联网学习Python 但我陷入了课堂问题 2个问题 如何在另一个 单独的 类中创建一个类的实例 如何在类和嵌套 类之间传递变量 当我尝试在另一个 单独的 类中创建类的实例时 我可以在方法中执行此操作 这是代码 import
  • C#:当一个字段可以是不同类型时反序列化 JSON

    我正在与返回包含 true false 或字符串数 组数组的 JSON 的 API 进行通信 我希望反序列化此 JSON 并将布尔值 如果有 存储在数据类型 bool 的名为 Success 的类字段中 并将数组 如果有 存储在自定义数据类
  • 建议使用 postgres 工具来查找模式和数据之间的差异

    各位 任何人都可以建议我使用 Linux 的 postgres 工具来查找2个给定数据库之间的差异 我尝试使用 apgdiff 2 3 但它给出了模式而不是数据方面的差异 但我两者都需要 提前致谢 比较数据并不容易 尤其是当您的数据库很大时
  • 重写 Objective-C 中的可变参数方法

    在 Objective C 中子类化时 在可变参数方法的情况下如何将调用转发到超类 我应该用什么来替换 下面发送我得到的所有对象 void appendObjects id firstObject super appendObjects 你
  • 如何在 Android 应用程序的 Activity 之间传递数据?

    我有一个场景 通过登录页面登录后 会出现注销button在各个activity 点击时sign out 我将通过session id登录用户的注销 谁能指导我如何保持session id所有人都可以使用activities 这种情况的任何替
  • 在 Python 中调用函数列表的惯用方式是什么?

    我有一个回调函数列表 当事件触发时我需要调用这些函数 这是惯用的Python吗 def first callback m print first m def second callback m print second m lst firs