csv文件创建方法 手机csv文件用什么打开( 三 )


#-*- coding:utf-8 -*-class Rect:def __init__(self, length, width):self.length = length;self.width = width;def detail(self):print(self.length, self.width)def showArea(self):area = self.length * self.widthreturn areadef showCir(self):cir = (self.lengthself.width) * 2return cir#实例化rect1 = Rect(4,5)#调用函数rect1.detail()area = rect1.showArea()cir = rect1.showCir()print('面积:', area)print('周长:', cir)输出结果面积为20 , 周长为18 。对于面向对象的封装来说 , 其实就是使用构造方法将内容封装到对象中 , 然后通过对象直接或者self间接获取被封装的内容 。
整体而言 , 面向对象是站在事物本身的角度去思考解决问题 , 如果上面采用面向过程定义函数的形式实现 , 当出现多个形状时 , 你需要对每一种形状都定义一种方法 , 而面向对象只需把这些形状的属性和方法抽象出来 , 形成各种形状 , 更符合真实情况 。
注意:为了更简明快速的让读者学习Python数据爬取、数据分析、图像识别等知识 , 本系列中的代码很少采用定义类和对象的方式呈现 , 而是直接根据需要实现的功能或案例 , 直接编写对应的代码或函数实现 。这是不规范和不合理的 , 在实际开发或更加规范的代码中 , 更推荐大家采用面向对象的方法去编程 , 但本系列更想通过最简洁的代码告诉你原理 , 然后你再去提升和锻炼自己的能力 。
设计模式中的面向对象
再举个例子:为了方便儿童学习编程 , X公司开发了一套Racing Car模拟器 , 使用这个模拟器每个孩子都可以用一种简单的语言来控制一辆赛车 , 例如right、left等 。请设计一种简单的语言 , 给出它的语法以及该语言的类图 。
这就是我们实际编程中联系到生活的问题 , 它涉及到了设计模式相关知识 , 其中我采用的方法是“命名模式”实现的 , 客户端是定义Children和Car , 请求者是Children发出的Right、Left、Up、Down命令 , 接受者是Car执行Move() , 抽象命令是上下左右的抽象接口 , 具体命令是Car的上下左右 。我制作的类图如下:
在这个例子中 , 我们使用了面向对象的思想 , 站在事物本身的角度去思考解决问题 , 而不是面向过程定义函数的形式实现 。如果又出现一个空陆两地车 , 它不仅能上下左右移动 , 还能飞行 , 传统的方法还需要再写四个上下左右移动的方法 , 而面向对象直接继承Car , 补充一个飞行新方法即可(不含方向) , 这就是面向对象的好处 。
同样 , 通过这个例子我不是想证明所采用的命令模式或画的类图是否正确 , 我想阐述的是我们学习面向对象知识主要是用来解决实际生活中的问题 , 让它更加高效地解决问题和优化代码 。同时 , 面向对象思想要适应需求的变化 , 解决用户的实际需求 , 在设计时就要尽量考虑到变化 , 会涉及到抽象、封装变化(重点)、设计模式等知识 。
四.总结无论如何 , 作者都希望这篇文章能给您普及一些Python知识 , 更希望您能跟着我一起写代码 , 一起进步 。如果文章能给您的研究或项目提供一些微不足道的思路和帮助 , 就更欣慰了 。作者最大的期望就是文章中的一些故事、话语、代码或案例对您有所帮助 , 致那些努力奋斗的人 。

推荐阅读