用过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. kettle读取不到oracle,kettle链接Oracle数据库,百试不爽!
  2. Python进阶_wxpy学习:机器人对象
  3. RabbitMq--2--安装
  4. 小心多任务设计被滥用
  5. 批处理解决局域网共享打印机问题
  6. vue3数据绑定显示列表数据局
  7. JS权威指南阅读笔记
  8. java volatile有什么用_深入解析Java中volatile关键字的作用
  9. webstorm怎么跑项目_看不懂代码,不会用框架,新手程序员入职后如何快速上手项目?...
  10. 吴恩达深度学习4.1练习_Convolutional Neural Networks_Convolution_model_StepByStep_1
  11. man命令的使用方法
  12. Cognos8.3解决方案
  13. php如何获取手机序列号,Android应用获取设备序列号的方法
  14. 记一次阿里云RDS MYSQL 数据恢复的经历
  15. 中小尺寸OLED面板面临价格战,中国手机可捡便宜
  16. 一文读懂什么是数据产品交易
  17. 【PYG】常用和采坑总结
  18. 人脸识别活体检测之张张嘴和眨眨眼
  19. LinkedBlockingQueue 实现生产者消费者模型
  20. Objective-C学习篇08—NSDictionary与NSSet

热门文章

  1. 数据预处理第5讲:特征缩放
  2. 协方差 方差 以及线性相关理解
  3. jzoj3348. 【NOI2013模拟】秘密任务
  4. 451 Sort Characters By Frequency 根据字符出现频率排序
  5. 【踩坑】activiti工作流的svg-xml解析报错
  6. vs code安装使用ESLint,typescript
  7. [漏洞案例]thinkcmf 2.x从sql注入到getshell实战
  8. 图论画图有力工具 csacadmy app Graph Editor
  9. 容器技术学习系列文章总目录
  10. codeforces C. Ryouko's Memory Note