用过linux的基本知道它的管道,是将一个程序或命令的输出作为还有一个程序或命令的输入.

废话少说,以下我们看用python怎么实现unix管道风格的函数调用.

#coding=utf-8
class Pipe:def __init__(self, func):self.func = funcdef __ror__(self, other):return self.func(other)@Pipe
def add(args):return sum(args)@Pipe
def incr(arg):return arg + 1print [1, 2, 3] | add | incr

原理就是装饰器+操作符重载.(对装饰器一知半解的请看<python装饰器的本质>)
当中魔术方法__ror__重载操作符|
真是简单粗暴.人生苦短,我用python!

转载于:https://www.cnblogs.com/yangykaifa/p/6725990.html

飘逸的python - 几行代码实现unix管道风格的函数调用相关推荐

  1. Python第一行代码

    Python第一行代码 前言 'module' object is not callable 前言 其实说起来也不算是Python的第一行代码,或第一次写Python,只不过在学习Python的时候遇 ...

  2. python人脸识别代码百度ai_强大的AI!Python几行代码,就能预测未来孩子的长相?...

    这次,将百度智能云中的人脸识别功能与python结合起来进行实验花了一些时间.结果非常令人满意,而且过程非常简单而不复杂.或许,你可以整合你孩子的外貌.让我们一起敲击键盘. 准备百度人工智能开放平台账 ...

  3. python 250行代码开发一个贪吃蛇

    python 250行代码开发一个贪吃蛇 1. 前提工作准备 2. 全局变量的定义与包的导入 3. 游戏开始界面初始化 4. 游戏界面的设置 4.1 游戏界面,使用一个Point类进行划分 4.2 预 ...

  4. Python 8行代码模拟鼠标自动删除微信收藏

    上回我们提到了用 pyuserinput 进行模拟键盘鼠标操作,结果发现很多同学都回复无法安装成功,即便安装成功了还是存在很多问题.确实,pyuserinput存在不少问题,包括其安装的pymouse ...

  5. python人脸识别毕业设计-Python 40行代码实现人脸识别功能

    前言 很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了.这些人里包括曾经的我自己.其实如果如果你不是非要深究其中的原理,只是要实现这 ...

  6. python首行代码import *,from * import * 解析

    python代码,一般第一行代码都是import *或from * import *,作用是导入功能模块,然后利用模块内的函数编写代码,减少大量的代码编写时间,是python的一大特色.但是,在实际写 ...

  7. cvtcolor python opencv_13行代码实现:Python实时视频采集(附源码)

    程序逻辑 Python实时视频采集程序主要流程共分为10个步骤,具体如下图所示: 流程描述: 库文件导入:导入程序依赖的python安装包: 摄像头管理对象创建和初始化:是对opencv VideoC ...

  8. 网易数读所有精致图片,Python百行代码搞定!

    微信公众号原文链接 网易数读是一个数据新闻可视化栏目,致力于提供轻量化的阅读体验.其内容往往是结合时下新闻热点将相关数据可视化处理,并以精致的图文形式呈现出来. 举个栗子,大家感受一下人家的风格: 图 ...

  9. python第一行代码_“少年py”001:下载Python软件,写第一行代码

    Python,网络上称之为人工智能时代的第一编程语言. 功能超级强大,能做科学计算.大数据处理.网络爬虫.游戏开发等等. 但是说实话,彬哥玩Python还没到这么厉害的程度,究竟怎么实现,我们不着急, ...

  10. python人物抠图算法_比PS还好用!Python 20行代码批量抠图

    抠图前 vs Python自动抠图后 在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦,倘若遇到许多张图片需要抠,这时候你的表情应该会很有趣. Pyth ...

最新文章

  1. 交替最小二乘+ALS+推荐+Spark
  2. 如何用 Python 和机器学习帮你决策?
  3. oracle进城有哪些,oracle主要进程详解
  4. [网络安全提高篇] 一〇四.网络渗透靶场Oracle+phpStudy本地搭建万字详解(SQL注入、XSS攻击、文件上传漏洞)
  5. linux编译ace,Linux下编译ACE
  6. 对象的序列化流_ObjectOutputStream
  7. php smtp报文_PHP 使用 SMTP 发送邮件教程(PEAR Mail 包)
  8. linux tmux 详细教程,Linux下的神器介绍之Tmux分屏器
  9. 颜宁问4对科研夫妻:男科学家怎样平衡事业家庭?
  10. 服务器选购seo优化规则,如何选择有利于SEO优化的空间服务器
  11. 关于二分类的评价指标体系
  12. Extjs嵌入html
  13. 单目深度估计方法:现状与前瞻
  14. kaggle房价预测特征意思_Kaggle之预测房价
  15. Linux 之 NTP 服务 服务器
  16. diskgenius分区linux选哪项,DiskGenius和和傲梅分区助手哪个好 无损C盘扩容选谁
  17. 电脑上有什么好用的卸载软件?--geek 卸载神器
  18. VirtualBox 应用程序错误
  19. mysql datesub interval_Mysql之INTERVAL与DATE_SUB与EXTRACT函数的使用
  20. Mybatis入门(复习)

热门文章

  1. 如何在对话框程序中让对话框捕获WM_KEYDOWN消息
  2. 深度学习系列(一)【人类语言处理--引言】
  3. Intel® Math Kernel Library (Intel® MKL)
  4. Python3-笔记-E-012-库-JSON
  5. [转]对企业管理和团队的理解
  6. Docker核心技术与实现原理
  7. 索引大小对语句执行速度的影响
  8. vue-自定义组件传
  9. 介绍Unity中相机的投影矩阵与剪切图像、投影概念
  10. spring cloud报错解决:java.lang.ClassNotFoundException: com.netflix.servo.monitor.Monitors