我有一些旧代码,其中我将函数列表作为类属性存储在Python中。这些列表被用作一种事件钩子。在

为了使用适当的参数调用列表中的每个函数,我使用了一行程序,将map与{}表达式混合使用。我现在担心使用这样的lambda表达式会有不必要的开销。。我想推荐的方法是删除map和lambda,只使用标准for循环,以提高可读性。在

但是,有没有更好(读得更快)的一行代码来实现这一点呢?在

例如:class Foo:

"""Dummy class demonstrating event hook usage."""

pre = [] # list of functions to call before entering loop.

mid = [] # list of functions to call inside loop, with value

post = [] # list of functions to call after loop.

def __init__(self, verbose=False, send=True):

"""Attach functions when initialising class."""

self._results = []

if verbose:

self.mid.append( self._print )

self.mid.append( self._store )

if send:

self.post.append( self._send )

def __call__(self, values):

# call each function in self.pre (no functions there)

map( lambda fn: fn(), self.pre )

for val in values:

# call each function in self.mid, with one passed argument

map( lambda fn: fn(val), self.mid )

# call each fn in self.post, with no arguments

map( lambda fn: fn(), self.post )

def _print(self, value):

"""Print argument, when verbose=True."""

print value

def _store(self, value):

"""Store results"""

self._results.append(value)

def _send(self):

"""Send results somewhere"""

# create instance of Foo

foo = Foo(verbose=True)

# equivalent to: foo.__call__( ... )

foo( [1, 2, 3, 4] )

有没有更好的方法来编写那些单行map调用?在

python 函数调用列表,函数调用列表的Python oneliner相关推荐

  1. python编程学习笔记列表_python编程:从入门到实践学习笔记-函数

    Python学习资料或者需要代码.视频加Python学习群:516107834 定义函数 举个简单的例子 由上所示,关键字def定义一个函数,后面跟着函数名以及用来输入参数的括号,定义以冒号结束,而p ...

  2. python38使用_笨方法学Python 习题38:列表的操作

    列表的操作: 这里先复习一下之前遇见过的函数:split()通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分隔num个子字符 str.split(str="", nu ...

  3. 我要翻译《Think Python》-002 贡献列表 目录部分

    PDF源文件地址 :  http://www.greenteapress.com/thinkpython/thinkpython.pdf 贡献列表 自从本书诞生之后,有超过上百个目光敏锐且有想法的读者 ...

  4. python 把2个列表或者2个元组转成字典

    python 把2个列表或者2个元组转成字典 使用映射的方法即可 语法如下: 字典 = dict(zip(list1,list2)) 说明: zip 是将2个列表或者2个元组合并 list1 是字典的 ...

  5. python 把元组转为列表

    python 把元组转为列表的方法是在元组前面添加list ,与 python 的类型转换方法一样,具体如下 list_a = (1, 9, 10, 6) print(list_a) # 打印结果 ( ...

  6. python字典、列表、元祖使用场景_python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍...

    python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 元祖跟列表类似.只不过是有区别的. 如下: tuple(元祖英文) 跟列表类似, 元素不能 ...

  7. 70个Python练手项目列表 预祝大家 快乐

    小孩眺望远方,成人怀念故乡. 为此给大家分享一下珍藏的Python实战项目,祝大家节日快乐哦!!! Python 前言:不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说 ...

  8. Python中将三个列表数据zip起来并遍历(Iterating through three lists in parallel)

    Python中将三个列表数据zip起来并遍历(Iterating through three lists in parallel) 目录 Python中将三个列表数据zip起来并遍历(Iteratin ...

  9. Python中将两个列表数据zip起来并遍历(Iterating through two lists in parallel)

    Python中将两个列表数据zip起来并遍历(Iterating through two lists in parallel) 目录 Python中将两个列表数据zip起来并遍历(Iterating ...

最新文章

  1. webpack中loader加载器(打包非js模块)
  2. 合格的CTO应该是什么样?雷军王海峰王小川等共谈「技术创新」| CNCC2020
  3. java怎样生成32位全是整形的主键_你肯定会需要的分布式Id生成算法雪花算法(Java)...
  4. winPcap编程之打开适配器并捕获数据包(四 转)
  5. 各主流浏览器内核介绍
  6. 厉害了!这里藏着通关学霸的秘籍
  7. 《团队作业》五小福团队--UNO的博客链接汇总
  8. Cocos2D学习笔记(1)- 常用的类
  9. Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
  10. 切比雪夫距离(bzoj 3210: 花神的浇花集会)
  11. 用命令行编译和运行C语言程序
  12. 用 SIR 模型拟合疫情感染情况
  13. 一窥朝鲜的计算机技术发展,操作系统,平板,杀毒软件,都有!
  14. 维基百科(Wikipedia)网址
  15. html仿写网易云音乐人页面,vue模仿网易云音乐的单页面应用
  16. VS2013使用教程总结(1)---忽略安全检查
  17. mysql5.6.1安装步骤_mysql5.6安装步骤
  18. SQL语句之单行函数
  19. 算法:动态申请数组(new)后将数组所有元素置零(初始化数组)的方法(炒鸡简单)(C++语言)
  20. AR儿童绘本技术实现

热门文章

  1. MySQL Workbench 8.0 CE数据库管理基本操作
  2. eclipse可以写前端吗_Python 竟然也可以写网页前端了!
  3. 资源高效搜索方法,你 Get 到了吗?
  4. 扩增子分析QIIME2(2018.6). 1简介和安装
  5. R语言进行dataframe数据左连接(Left join):使用R原生方法、data.table、dplyr等方案
  6. R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现
  7. Python基于MASK信息抽取ROI子图并构建基于迁移学习(densenet)的图像分类器实战(原始影像和mask文件都是二维的情况)
  8. R语言删除包含缺失值的行并将字符数据列(character)转化为因子列(factor)实战
  9. R语言ggplot2包以及lattice包可视化方程、函数的曲线实战:function curve
  10. R可视化绘制泊松分布(Poisson Distribution)