Python实现类似jQuery使用中的链式调用的示例


Posted in Python onJune 16, 2016

关于jQuery的链式调用
真正有意义的链式调用也就是方法链(method chaining)。方法链这个词是有的,而且使用的很广泛。其实很多人口中的“链式调用”实际上就是指方法链。但是“链式调用”这个词语还可以描述函数调用链,所以让它自身的存在价值变得难以理解。
我总结的方法链的价值有这么几个:
1. 让调用过程更接近自然语言。
2. 把原本参数列表复杂的方法化作多个参数列表简单的方法来使用。
3. 减少不必要的代码量。
这个三点都是有益于开发的,所以方法链的存在很有意义。jQuery的很多东西就是使用了方法链的概念。
总之,如果“链式调用”这个词还是尽量别用,因为无法从字面判断含义。除非你想说明的是上面这个脑残东西,你可以用“链式调用”去说,如果只是想描述方法链的概念,就直接说方法链就行了。

Python实现链式调用
用过jquery的一般都知道在jquery中可以链式调用,代码简洁优雅。比如$(“a”).addClass(“test”).show().html(“foo”);。
在redis-py中的pipeline中也可以链式调用,比如pipe.set('foo', 'bar').sadd('faz', 'baz').incr('auto_number').execute() 。
那么究竟怎么实现的呢?
很简单,返回对象自己就行了,即return self.
废话不多说,上代码。

class Person: 
  def name(self, name): 
    self.name = name 
    return self 
 
  def age(self, age): 
    self.age = age 
    return self 
 
  def show(self): 
    print "My name is", self.name, "and I am", self.age, "years old." 
 
p = Person() 
p.name("Li Lei").age(15).show()
Python 相关文章推荐
Python文件及目录操作实例详解
Jun 04 Python
python查看微信好友是否删除自己
Dec 19 Python
使用Python实现博客上进行自动翻页
Aug 23 Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
用Python从0开始实现一个中文拼音输入法的思路详解
Jul 20 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
无需压缩软件,用python帮你操作压缩包
Aug 17 Python
scrapy-splash简单使用详解
Feb 21 Python
Python基础之函数嵌套知识总结
May 23 Python
浅析Python中else语句块的使用技巧
Jun 16 #Python
python基础教程之分支、循环简单用法
Jun 16 #Python
python3音乐播放器简单实现代码
Apr 20 #Python
使用python3.5仿微软记事本notepad
Jun 15 #Python
python3.5仿微软计算器程序
Mar 30 #Python
Python的Asyncore异步Socket模块及实现端口转发的例子
Jun 14 #Python
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 #Python
You might like
php分页函数
2006/07/08 PHP
php获取某个目录大小的代码
2008/09/10 PHP
php 使用array函数实现分页
2015/02/13 PHP
php数组转成json格式的方法
2015/03/09 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
从零学Python之入门(三)序列
2014/05/25 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
python 数据的清理行为实例详解
2017/07/12 Python
python解决字符串倒序输出的问题
2018/06/25 Python
django中的图片验证码功能
2019/09/18 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
详解Python流程控制语句
2020/10/28 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
学术会议邀请函范文
2014/01/22 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
三年级小学生评语
2014/04/22 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
二胎满月酒致辞
2015/07/29 职场文书