本节书摘来自异步社区《像计算机科学家一样思考Python》一书中的第4章,第4.4节,作者[美]Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

4.4 封装

第一个练习要求你把画正方形的代码放到一个函数定义中,并将乌龟bob作为实参传入,调用该函数。下面是一个解答:

def square(t):for i in range(4):fd(t, 100)lt(t)square(bob)

最内侧的语句,fd和lt都缩进了两层,表示它们是在for语句的语句体内部,而for语句在函数定义的函数体内部。最后一行,square(bob),又重新从左侧开始而没有缩进,所以这里for语句和square函数的定义都已经结束了。

在函数体中,t引用的乌龟和bob引用的相同,所以lt(t)和直接调用lt(bob)是一样的效果。那么为什么不直接把形参写为bob呢?原因是t可以是任何乌龟,而不仅仅是bob,所以你可以再新建一只乌龟,并将它作为参数传入到square函数:

ray = Turtle()
square(ray)

把一段代码用函数包裹起来,称为封装(encapsulation)。封装的一个好处是,它给这段代码一个有意义的名称,增加了可读性。另一个好处是,当你重复使用这段代码时,调用一次函数比复制粘贴代码要简易得多!

《像计算机科学家一样思考Python》——4.4 封装相关推荐

  1. 《像计算机科学家一样思考Python(第2版)》——2.6 字符串操作

    本节书摘来自异步社区<像计算机科学家一样思考Python(第2版)>一书中的第2章,第2.6节,作者[美] Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区&quo ...

  2. 《像计算机科学家一样思考Python》——3.9 变量和形参是局部的

    本节书摘来自异步社区<像计算机科学家一样思考Python>一书中的第3章,第3.9节,作者[美]Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区"异步社区 ...

  3. 《像计算机科学家一样思考Python》pdf

    下载地址:网盘下载 内容简介  · · · · · · <像计算机科学家一样思考python>按照培养读者像计算机科学家一样的思维方式的思路来教授python语言编程.全书贯穿的主体是如何 ...

  4. 《像计算机科学家一样思考Python(第2版)》——2.7 注释

    本节书摘来自异步社区<像计算机科学家一样思考Python(第2版)>一书中的第2章,第2.7节,作者[美] Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区&quo ...

  5. 《像计算机科学家一样思考Python(第2版)》——1.3 第一个程序

    本节书摘来自异步社区<像计算机科学家一样思考Python(第2版)>一书中的第1章,第1.3节,作者[美] Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区&quo ...

  6. 《像计算机科学家一样思考Python》——第4章 案例研究:接口设计 4.1 乌龟世界...

    本节书摘来自异步社区<像计算机科学家一样思考Python>一书中的第4章,第4.1节,作者[美]Allen B. Downey,赵普明 译,更多章节内容可以访问云栖社区"异步社区 ...

  7. 像计算机科学家一样思考python 百度网盘_像计算机科学家一样思考Python PDF_Python教程...

    资源名称:像计算机科学家一样思考Python PDF 第1章 程序之道 1 1.1 Python编程语言 1 1.2 什么是程序 3 1.3 什么是调试 3 1.4 语法错误 3 1.5 运行时错误 ...

  8. 像科学家一样思考python_像计算机科学家一样思考Python (第2版) 中文pdf完整版

    本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯穿全书的主体是如何思考.设计.开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介. 全书共21章,详细介绍Pyt ...

  9. 像计算机科学家一样思考python

    18 继承(inheritance) 继承 是面向对象编程 的一种语言特性: 它能 通过对现有的某个类稍作修改的方式 定义一个新的类. 现有的类 称为 父类, 新的类 称为子类. 之所以被称为 继承, ...

最新文章

  1. python logging logger
  2. Linux下LAMP环境的安装之编译安装过程(五)
  3. 2018年安卓绿色联盟数据报告
  4. 复合火焰探测传感器_火灾探测器分类
  5. vue实现Excel文件的上传与下载
  6. php __FILE__,__CLASS__等魔术变量,及实例
  7. 第三节 整型和浮点型
  8. 利用zabbix监控mysqldump定时备份数据库是否成功 乐维君
  9. Makefile详解(六)
  10. 2019年区块链多币种钱包建设的安全性与可用性
  11. python 两个list 求交集,并集,差集
  12. c语言可以设计系统嘛,C语言自主学习系统设计与实现.doc
  13. 使用python调用openmpi编译的MPI 动态库报错:mca_base_component_repository_open: unable to open mca_patcher_overwri
  14. excel统计填充色单元格数
  15. graphpad做单因素方差分析_GraphPad中国官网 - Prism 8 统计指南 - 单因素方差分析
  16. JS中promise是什么?
  17. Excel神器之xlwings的安装
  18. PaddlePaddle tutorial Ⅰ——Multiple linear regression
  19. 数据库可视化工具 dbForge Studio for MySQL 快速入门以及进阶指导
  20. 0017-量化第四天:QMT—指数增强回测算法注释学习

热门文章

  1. 删除苹果自带软件后果_使用adb命令删除手机软件(包括系统自带)
  2. 忘了微信密码怎么办_微信支付密码怎么改?微信支付密码忘了怎么办?详细教程来了!...
  3. 运行loadrunner自带的webtour项目无法启动
  4. java 实现复制_在java中如何实现复制,粘贴,剪切
  5. 小白也能看得懂的服务端性能测试指标及问题排查
  6. python中文分词统计_python 实现中文分词统计
  7. python顺序查找的递归算法_Python实现查找算法
  8. 计算机应用基础165791,人大网大计算机应用基础试题答案资料.doc
  9. html在线测试 css,HTML+CSS测试
  10. sublime press key “escape” can't type anything