Python编程基础:第四十五节 方法链Method Chaining
第四十五节 方法链Method Chaining
- 前言
- 实践
前言
方法链是指一个对象一次调用其自身的多个方法,通常写作对象.方法1.方法2
。由于这种调用方法看起来像一个链条,所以我们将其称作方法链。通过方法链我们可以简化代码。
实践
我们这里先定义一个名为Animal
的类,它包含三个方法,分别是eat()
、sleep()
、run()
:
class Animal():def eat(self):print("The animal is eating")def sleep(self):print("The animal is sleeping")def run(self):print("The animal is running")
我们尝试通过方法链的方式逐次调用该类的三个方法:
animal = Animal()
animal.eat().sleep().run()
>>> AttributeError: 'NoneType' object has no attribute 'sleep'
可见程序报错了,这是因为代码执行完animal.eat()
后返回None
,而None
不包含任何方法,所以无法调用sleep()
方法。为了避免这个问题,我们需要给每个方法返回self
,也即类本身:
class Animal():def eat(self):print("The animal is eating")return selfdef sleep(self):print("The animal is sleeping")return selfdef run(self):print("The animal is running")return self
此时我们再对类进行实例化,就能调用其多个方法了:
animal = Animal()
animal.eat().sleep().run()
>>> The animal is eating
>>> The animal is sleeping
>>> The animal is running
以上便是方法链的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍super()函数(Super Function),敬请期待~
Python编程基础:第四十五节 方法链Method Chaining相关推荐
- Python编程基础:第二十五节 args参数*args
第二十五节 args参数*args 前言 实践 前言 我们目前学习到的函数的参数个数都是固定的,那么我们是否可以指定任意多个参数呢?其实是可以的,这里就用到了args参数,它可以将用户指定的任意多个参 ...
- Python编程基础:第十五节 二维列表2D Lists
第十五节 二维列表2D Lists 前言 实践 前言 列表中的元素可以是任何形式,整型.浮点型.字符串型,甚至是一个列表.当列表的元素也是列表时,我们将其称为二维列表. 实践 我们先来创建多个一维列表 ...
- Python编程基础:第二十九节 异常Exception
第二十九节 异常Exception 前言 实践 前言 我们在写代码时不可避免地会出错,这时候编译器便会抛出异常并中断程序的执行.针对这种情况,我们可以采用异常处理的方式捕捉程序中的异常信息,并将异常信 ...
- Python编程基础:第十九节 索引Index Operator
第十九节 索引Index Operator 前言 实践 前言 我们在字符串学习过程中已经接触过索引的相关内容,我们在这里做一个小结,Python中的索引分为两部分,一种是从左向右,从0开始依次递增,例 ...
- Python编程基础:第十六节 元组Tuple
第十六节 元组Tuple 前言 实践 前言 我们这一节来学习一个与列表非常相似的数据结构--元组.需要注意的是元组定义好以后,其中的元素是不能改变的,并且所有元素是有序排列的, 实践 我们先来创建一个 ...
- Python编程基础:第二十六节 kwargs参数**kwargs
第二十六节 kwargs参数**kwargs 前言 实践 前言 上一节我们尝试传入任意多的参数,我们这一节来学习传入任意多具有参数名称的参数.kwargs参数将用户传入的参数打包为字典传入函数中用于进 ...
- 深入理解python.md_跟黄哥学python序列文章之python方法链(method chaining)
跟黄哥学python序列文章之python方法链(method chaining) 写这篇文章来由,有朋友说下面这样的代码看不懂. choice = raw_input("please in ...
- 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出
第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...
- python输入123输出321的编程_第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出...
第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...
最新文章
- matlab实验是啥,matlab实验心得体会
- matlab光学远轴光的折射,matlab模拟光的反射折射
- CS1704问题汇总
- PHP与MySQL设计模式:代理模式
- pytorch固定BN层参数
- 基于Docker swarm 集群搭建SSR 学习
- scsi服务器硬盘如何用,实战:不重启服务器添加scsi硬盘
- Flutter HotRealod详解
- 怎样把可调DC-DC变身为数控稳压电源
- 程序设计基础java_Java程序设计基础
- linux proftpd 用户,proftpd 虚拟帐号的建立及quota
- 等保三级网络安全相关设备加固笔记
- 一键解锁iPhone屏幕密码
- Visual Studio 2008 官方破解版
- 基于Matlab/Simulink的简单三相交流系统扫频仿真
- 清华小学上册计算机教学案例,案例分析 清华小学 罗远琴
- Shopify开店建站营销推广卖家平台后台中文指南 – Test orders / 测试订单
- Java-万物皆对象
- 独立开发者如何笑傲江湖
- 教你用ps如何将图片、文字做出模糊斑驳的作旧效果
热门文章
- 802.11协议基础
- CSP认证201512-2	消除类游戏[C++题解]:模拟
- 开服侠显示服务器已停止,蜘蛛侠:极限(已关服)无法连接服务器是什么原因...
- linux中ed编辑器手册,脚本编辑器 - Navicat 15 for Linux 产品手册
- python安装虚拟环境没有activate_Python venv虚拟环境:Activate命令的作用
- android打开视频噔_android: 播放视频
- oracle中dlink使用,Oracle,MetaLink,中文使用指南
- python面试装饰器_Python测开面试题之装饰器
- axure9 邮件点击效果_总是收到无关的工作邮件?这个有意思的工具可以帮你消灭它们...
- Linux:网络编程