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

简介:

本节书摘来自异步社区《像计算机科学家一样思考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)。封装的一个好处是,它给这段代码一个有意义的名称,增加了可读性。另一个好处是,当你重复使用这段代码时,调用一次函数比复制粘贴代码要简易得多!

相关文章
|
4月前
|
Python
python封装执行cmd命令的方法
python封装执行cmd命令的方法
37 0
|
4月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
61 0
|
2月前
|
Python
请简述Python中的继承、封装和多态的概念。
【2月更文挑战第24天】【2月更文挑战第82篇】请简述Python中的继承、封装和多态的概念。
|
6月前
|
Python
一文学会Python面向对象中封装、继承、多态使用
一文学会Python面向对象中封装、继承、多态使用
82 0
|
5月前
|
Python
Python 面向对象编程:什么是面向对象编程(OOP)?解释封装、继承和多态的概念。
Python 面向对象编程:什么是面向对象编程(OOP)?解释封装、继承和多态的概念。
42 0
|
10月前
|
JSON 监控 前端开发
python对接API二次开发高级实战案例解析:Zabbix API封装类实现获取认证密钥、所有主机组、所有主机、所有监控项和历史数据
python对接API二次开发高级实战案例解析:Zabbix API封装类实现获取认证密钥、所有主机组、所有主机、所有监控项和历史数据
305 0
|
8月前
|
数据安全/隐私保护 开发者 Python
面向对象编程(OOP):Python中的抽象与封装
面向对象编程(OOP):Python中的抽象与封装
|
10天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
1月前
|
Python
python使用tkinter库,封装操作excel为GUI程序
python使用tkinter库,封装操作excel为GUI程序
|
2月前
|
安全 Python
Python封装:深入解析与应用
封装是Python面向对象编程的关键,通过隐藏对象属性和实现细节,提供公共访问方式,确保代码安全和可维护。实现封装主要通过类和对象,使用私有属性(__前缀)及访问器/修改器方法。封装能隐藏内部状态、统一接口、复用代码和增强扩展性。示例展示了如何用私有属性和访问器方法控制属性访问。掌握封装有助于编写高效、灵活的代码。