跟黄哥学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培训 咨询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.md_跟黄哥学python序列文章之python方法链(method chaining)相关推荐

  1. Python编程基础:第四十五节 方法链Method Chaining

    第四十五节 方法链Method Chaining 前言 实践 前言 方法链是指一个对象一次调用其自身的多个方法,通常写作对象.方法1.方法2.由于这种调用方法看起来像一个链条,所以我们将其称作方法链. ...

  2. python折半查找算法_跟黄哥学python序列文章之python二分查找算法

    在计算机科学中,二分查找算法(binary search).也称折半搜索(英语:half-interval search), 二分搜索法.二分搜索.二分探索,是一种在有序数组中查找某一特定元素的搜索算 ...

  3. python零基础怎么学-零基础如何入门Python

    零基础学习编程,和学习任何一门实用技能都同样需要经历3个阶段:理解->模仿->应用 正如我们在婴儿时期学习说话的时候,最初是看着图片理解文字的含义,然后是模仿父母的发音,逐渐才能学会表达自 ...

  4. python零基础怎么学-零基础如何学习Python?老男孩Python入门培训

    现在越来越多的人想要学习Python课程,在学习Python的过程中不少人都会关注学习Python难吗?今天老男孩IT教育小编就为大家详细的解读一下吧. 0基础学习Python语言可以吗?首先个人认为 ...

  5. python零基础能学吗-终于知道深圳Python零基础能学吗

    近来一段时间总是有很多人在问深圳Python零基础能学吗到底有没有价值,大家对于深圳Python培训疑问的根源可能来自于多方面的,今天就通过Python能用来做什么,主要学习内容,文字云很难做吗,学P ...

  6. 零基础学编程树莓派和python pdf_零基础学编程:树莓派和Python

    章编程基础知识和环境准备 1.1零基础的小白能学会编程吗 1.1.1为什么要学编程 1.1.2兴趣是好的老师 1.1.3为什么零基础的自学编程者,大多半途而废 1.1.4有趣好玩很重要 1.1.5家长 ...

  7. python零基础难学吗-如何从零开始学习Python,零基础学python难吗

    Python并不难学,它诞生至今已经过25个年头,但相对于其他语言,它更加易学.易读,非常适合快速开发,Python编程简单直接,更适合初学编程者. 那么,如何从零开始学习python呢? 可以分为这 ...

  8. python零基础怎么学-零基础怎么学习python?

    对于新手来说,如何快速入门掌握Python编程呢?这个问题问的非常不错.学习编程来说,虽然语言具有简单化的优势,但是同样学习起来非常的麻烦,想要快速学习好一门语言,唯有站在别人的肩膀上才可以更快一些, ...

  9. python社会学科需要学些什么_学好Python能做什么

    近年来,选择学Python的人也在逐年增多.然而,很多人学Python只是盲目的跟随潮流,对于Python却不了解,学好Python能做什么?今天源码时代小编就来给大家介绍一下Python的就业方向. ...

最新文章

  1. 关闭Delphi的RTTI
  2. 实现费用管理 mysql_电信资费管理系统的设计与实现(NetBeans,MySQL)
  3. c语言 搜索题油田问题,HDU1241 经典油田问题(BFS)
  4. mysql int 优化_MySQL数据类型优化—整数类型优化选择
  5. Udi Dahan对于业务逻辑重用以及微服务方面的观点
  6. error PRJ0003 : 生成“cl.exe”时出错 解决方案
  7. 【转载保存】ExecutorService中submit和execute的区别
  8. 信息学奥赛一本通(1133:输出亲朋字符串)
  9. [转载]Qt之鼠标样式
  10. oracle的exp程序,数据库expimp迁移的整个过程,及注意事项
  11. struts2中的addActionError addFieldError addActionMessage的方法
  12. 【构造】构造一个字符串满足k个子序列问题总结
  13. 浏览器服务器响应报文查看,通过 Chrome浏览器 查看http请求报文
  14. 鸿蒙系统一定要成功,鸿蒙造化珠
  15. 计算机声声慢音乐,有没有适合声声慢的背景音乐
  16. 黑白琴键 java_黑白琴键上的爱阅读答案
  17. html css齿轮滚动特效,CSS_纯CSS3实现滚动的齿轮动画效果,纯CSS写的齿轮效果。支持chrome - phpStudy...
  18. GNSS系列(2)------OneMO模组LBS定位使用方法全攻略
  19. python遥控汽车玩具_遥控小车
  20. 拉起Docker容器初始化数据源时,报:org.postgresql.util.PSQLException: The connection attempt failed. 的解决办法

热门文章

  1. Flask学习笔记(十四)自定义模型类
  2. 深入理解 Java 虚拟机
  3. 【摄影与图像】光圈,对焦,变焦,补偿,直方图,以及白平衡的总结
  4. BBS+ BLOG系统(仿博客园)
  5. 如何使用Hibernate Envers审核数据,包括用户名信息
  6. 行业智能服务器标准版,2021年中国人工智能服务器行业市场规模及排行情况分析[图]...
  7. Android基于开源项目搭建自己的技术堆栈
  8. 在python中使用最小二乘法画出拟合曲线_基于jupyter notebook的python编程-----运用最小二乘法,导入文件数据模拟一元线性回归分析...
  9. js动态创建input元素并自动获取焦点
  10. UNI-APP_iphone苹果手机底部安全区域