文档章节

跟黄哥学python序列文章之python方法链(method chaining)

黄哥Python培训
 黄哥Python培训
发布于 2016/04/19 05:57
字数 693
阅读 120
收藏 2

跟黄哥学python序列文章之python方法链(method chaining)

写这篇文章来由,有朋友说下面这样的代码看不懂。

choice = raw_input("please input:\n").strip()[0].lower()
很多对于有经验的程序员来说,这些都不是事,
但对于初学者来说,看到这样的语法头有点大。

这个其实是面向对象中方法链的概念。

请看维基百科上Method chaining的定义

	Method chaining, also known as named parameter idiom,   
	is a common syntax for invoking   multiple method calls 
	in object-oriented programming languages.
	Each method returns an   object, allowing the calls 
	to be chained together in a single statement without requiring   
	variables to store the intermediate results.
	Local variable declarations are syntactic   
	sugar because of the difficulty humans have with deeply nested method calls.
	A method chain is also known as a train wreck due to the increase 
	in the number of methods that come one after another in the same 
	line that occurs as more methods are chained together
	even though line breaks are often added between methods.

具体在python中,请看黄哥的分析:

有的python初学者对python方法连续调用不是很清楚,像雾里看花一样。
python一切都是对象,对象调用它的方法,如果带返回值,放回值也是对象,  
这个返回值也有方法,当然就可以用点号调用它的方法,   
如此下去,就是python方法链调用也。

如何设计方法链python代码

# coding:utf-8
"""
如何通过学习python学会编程
https://github.com/pythonpeixun/article/blob/master/python/how_to_learn_python.md
黄哥python远程视频培训班
https://github.com/pythonpeixun/article/blob/master/index.md
黄哥python培训试看视频播放地址
https://github.com/pythonpeixun/article/blob/master/python_shiping.md
黄哥python培训 咨询qq:1465376564
"""


class Person(object):
    """方法链小sample"""

    def name(self, value):
        self.name = value
        return self # 返回实例对象自己才能再调用实例对象的方法。

    def work(self, value):
        self.working = value
        return self

    def introduce(self):
        print "你好, 我的名字:", self.name, ",我的工作:", self.working, ",教初学者学会编程!"

person = Person()
person.name("黄哥").work("黄哥python培训").introduce()

php方法链代码

	<?php
	/*
	黄哥php培训 咨询qq:1465376564
	https://github.com/pythonpeixun/article/blob/master/php_education.md
	*/


	class Person{
	    public $name;
	    public $working;

	    public function setName($value){
	        $this->name = $value;
	        return $this;
	    }

	    public function work($value){
	        $this->working = $value;
	        return $this;
	    }

	    public function introduce(){
	        echo "你好, 我的名字:".$this->name.",我的工作:".$this->working.",教初学者学会编程!\n";
	    }
	}

	$person = new Person();
	$person->setName("黄哥")->work("黄哥php培训")->introduce();

点击黄哥python培训试看视频播放地址

黄哥python远程视频培训班

© 著作权归作者所有

黄哥Python培训
粉丝 39
博文 21
码字总数 14219
作品 0
海淀
私信 提问
黄哥通过代码来说明:python语法糖

下面用一个例子来说明: #coding:utf-8 """ foo = decorator(foo) 语句的作用是将foo函数作为参数传递到decorator 返回值赋值给foo ,那么foo不再是原来的函数了 为了简化代码,python添加了...

黄哥Python培训
2015/11/13
453
0
sublimeREPL python

@python培训_黄哥 你好,想跟你请教个问题: 运行环境win8.1 64-bit ,Sublime Text 3 ,Python2.7.9 ,Ipython2.3.1 黄哥,请问ST3中装了sublimeREPL之后不可以用IPython是什么原因呢?在选...

zqsufe
2015/05/05
1K
0
剪刀石头布小习题三种语言python2、php、go代码

剪刀石头布小习题三种语言python2、php、go代码 # coding:utf-8 """ python核心编程6-14习题的解题思路 设计一个"石头,剪子,布"游戏,有时又叫"Rochambeau",你小时候可能玩过,下面是规则. 你和......

黄哥Python培训
2015/02/10
966
0
Python 2 和 Python 3 主要区别有哪些(一)?

Guido(Python之父,仁慈的独裁者)在设计 Python3 的过程中,受一篇文章 “Python warts” 的影响,决定不向后兼容,否则无法修复大多数缺陷。---摘录自《流畅的Python》 你可能从来没有听说...

liuzhijun
2017/08/02
0
0
Python基础总结成千行代码,让Python入门更简单!

只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python!当时我就不信邪啊,等我看完之后,即使作为一个Python老鸟了,还是领会到了很多教授他的独特见解!...

糖宝lsh
2018/09/10
254
0

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
54分钟前
4
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
55分钟前
7
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
58分钟前
4
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
今天
6
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
6
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部