面向对象编程 VS 面向过程编程
在使用计算机语言进行代码编写时,常见的两种思路是面向对象编程和面向过程编程:
(1)面向过程:根据业务逻辑从上到下写代码。
(2)面向对象:将数据与函数绑定到一起,分类进行封装,每个程序员只要负责分配给自己的分类,这样能够更快速地开发程序,减少了重复代码。
举一个生活中吃北京烤鸭的例子来解释这两种思路:
第一种方式(面向过程):第一步养鸭子;第二步鸭子长成;第三步杀鸭子;第四步配置佐料;第五步腌制烤鸭;第六步烤制烤鸭;第七步吃。
第二种方式(面向对象):第一步找个养烤鸭的农户;第二步找个厨子;第三步吃。
面向对象的思维解决问题的重点是当遇到一个需求的时候,不用自己去实现。例如之后要学习的PyTorch就是一种深度学习中面向对象编程的思想。读者甚至不需要知道深度学习中常见的诸如卷积算法等操作如何用代码编写,因为PyTorch深度学习框架已经把这些基础功能封装成了函数,想使用的时候直接调用函数名字即可,这为初学者们入门深度学习提供了极大的便利。
类与对象
1. 类的创建
类是对具有相同特征的对象进行抽象的概念,这些特征包含静态的和动态的,分别对应类的属性和方法。例如,鸟类的静态特征是长着一双翅膀,动态特征是会飞;而狗类的静态特征是嗅觉灵敏,动态特征是会“汪汪”叫。因此,再加上类的名字,这三个成分就组成的类的概念。
举例:
(1)狗类的设计:
类名:狗(Dog);
属性:品种、毛色、性别、名字、腿的数量等;
方法:(行为/功能):叫、跑、咬人、吃、摇尾巴等。
如何把日常生活中的事物抽象成程序中的类?实际上,拥有相同(或者类似)属性和行为的对象都可以抽象出一个类。常用的一个方法为名词提炼法:一般名词都是类。
举例:
(1)飞机发射7颗炮弹轰掉了一个舰队。
飞机:可以抽象成“飞机类”;
炮弹:可以抽象成“武器类”;
舰队:可以抽象成“船类”。
(2)小美在公园中牵着一条叼着热狗的狗。
小美:人类;
公园:场景类;
热狗:食物类;
狗:狗类。
详细代码示例
一般,使用class语句来创建一个新类,class之后为类的名称(通常首字母大写)并以冒号结尾,代码如下:
暂无评论内容