万物皆为对象。自然环境赋予人类无尽的遐想,而面向对象编程之思想就是来自于大自然。自然界,类和对象比比皆是,比如:鸟类和麻雀,鱼和鲤鱼......其中鸟类就是各种鸟的总称,而麻雀只不过是其中之一(对象)。

何为面向过程?何为面向对象?这是编程界的“矛盾”之一。其实,我也傻傻分不清楚......只能拿喝酒来“开刀”。哦,不是拿它来举个例子。

面向对象:

酒就是日常的生活饮品,酒就是一个抽象的class(类),“茅台”就是酒的具体对象,干杯就是喝酒的执行方法。

class Drinking_wine(object):

  def __init__(self,name):

    self.name = name

  def drinking():

    拿起酒瓶

    拧开酒盖

    倒酒

    喝酒

然后调用类(Drinking_wine()):

  maotai = Drinking_wine('茅台')
shuijingfang = Drinking_wine('水井坊') maotai.drinking()
shuijingfang.drinking()

面向过程:

拿起桌子上的酒瓶->拧开酒盖->拿出酒杯->倒出酒->再端起酒杯->嘴出“兄弟,干杯!”->酒杯相碰->一饮而尽

def Drinking_wine():

拿起酒瓶

拧开酒盖

倒酒

喝酒

面向对象编程——Object Oriented Programming,简称OOP,OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数,是一种程序设计思想。

在Python中,所有数据类型(包括自定义对象)均可以视为对象。数据类型可以用type()识别。例如:

       a = 4

type(a)

<class 'int'>

图1 type用法示例

特别地,在Python编程环境中,自定义对象的数据类型就是面向对象中的类。故而,面向对象编程的设计思想就是抽象出Class,然后根据类创建instance(实例),再由实例调用函数。

面向对象编程总结如下:

1.面向对象的抽象程度又比函数要高,因为一个Class既包含数据,又包含操作数据的方法。

2.三大特点:继承、多态和数据封装

3.认识面向对象和面向过程之间的差异

面向对象编程总结--Python的更多相关文章

  1. Python入门之面向对象编程(四)Python描述器详解

    本文分为如下部分 引言——用@property批量使用的例子来引出描述器的功能 描述器的基本理论及简单实例 描述器的调用机制 描述器的细节 实例方法.静态方法和类方法的描述器原理 property装饰 ...

  2. Python学习笔记之面向对象编程(三)Python类的魔术方法

    python类中有一些方法前后都有两个下划线,这类函数统称为魔术方法.这些方法有特殊的用途,有的不需要我们自己定义,有的则通过一些简单的定义可以实现比较神奇的功能 我主要把它们分为三个部分,下文也是分 ...

  3. Python入门之面向对象编程(二)python类的详解

    本文通过创建几个类来覆盖python中类的基础知识,主要有如下几个类 Animal :各种属性.方法以及属性的修改 Dog :将方法转化为属性并操作的方法 Cat :私人属性讲解,方法的继承与覆盖 T ...

  4. python学习之路-第七天-python面向对象编程简介

    面向对象编程 在python中,同样是类和对象作为重要的组成部分. 而且在python中基本数据类型如int都是有封装类的,都有自己的方法,应该是和java里面的Integer类似吧 类包括域和方法: ...

  5. python基础-面向对象编程

    一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...

  6. python 学习笔记7 面向对象编程

    一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." ...

  7. 进击的Python【第七章】:Python的高级应用(四)面向对象编程进阶

    Python的高级应用(三)面向对象编程进阶 本章学习要点: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 一.面向对象高级语法部分 静态方法 ...

  8. 进击的Python【第六章】:Python的高级应用(三)面向对象编程

    Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...

  9. Python黑帽编程2.9 面向对象编程

    Python黑帽编程2.9 面向对象编程 我个人认为,计算机语言的发展,有两个方向,一个是从低到高的发展过程,在这个过程中,语言的思考和解决问题的方式是面向硬件的.硬件本质上处理的是信号,在此基础上, ...

随机推荐

  1. 什么是命名空间?php命名空间的基本应用分享

    什么是命名空间? php中声明的函数名.类名和常量的名称,在同一次运行中是不能重复的,否则会产生一个致命的错误,常见的解决方法是约定一个前缀.例如 ,在项目开发时,用户 User 模块中的控制器和数据 ...

  2. .28-浅析webpack源码之compiler.resolvers

    原本该在过WebpackOptionsApply时讲解这个方法的,但是当时一不小心过掉了,所以在这里补上. compiler.resolvers 该对象的三个方法均在WebpackOptionsApp ...

  3. IO代码记忆

    FileWriter fw = new FileWriter("hello.txt"); String s = "hello world"; fw.write( ...

  4. mysql中使用show table status 查看表信息

    本文导读:在使用mysql数据库时,经常需要对mysql进行维护,查询每个库.每个表的具体使用情况,Mysql数据库可以通过执行SHOW TABLE STATUS命令来获取每个数据表的信息. 一.使用 ...

  5. HTTP 405 错误 – 方法不被允许 (Method not allowed)【转载】

    介绍 HTTP 协议定义一些方法,以指明为获取客户端(如您的浏览器或我们的 CheckUpDown 机器人)所指定的具体网址资源而需要在 Web 服务器上执行的动作.则这些方法如下: OPTIONS( ...

  6. Redis在Php项目中的实际应用场景

    前言 一些案例中有的同学说为什么不可以用string类型,string类型完全可以实现呀 我建议你看下我的专栏文章<Redis高级用法>,里面介绍了用hash类型的好处 商品维度计数 对商 ...

  7. Python 爬取美女图片,分目录多级存储

    最近有个需求:下载https://mm.meiji2.com/网站的图片. 所以简单研究了一下爬虫. 在此整理一下结果,一为自己记录,二给后人一些方向. 爬取结果如图:   整体研究周期 2-3 天, ...

  8. mysql alter总结

    mysql alter总结(转载) 1:删除列 ALTER TABLE [表名字] DROP [列名称] 2:增加列 ALTER TABLE [表名字] ADD [列名称] INT NOT NULL  ...

  9. python 程序退出方式

    sys.exit() 执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法. 该方法中包含一个参数status,默认为0,表示正常退出,也 ...

  10. keytool 错误:java.to.FileNotFoundException:

    老是报如题的错误: 后来才知道是因为当前的目录下没有写的权限,所以需要指定一个路径来存放android.key: keytool -genkey -alias android.key -keyalg ...