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

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

面向对象:

酒就是日常的生活饮品,酒就是一个抽象的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. CSS中的定位与浮动

    CSS中的定位与浮动 本文主要讲述CSS中的三种定位样式static.relative和absolute的区别以及浮动元素的特征. 定位样式 CSS中定位样式position的取值有三个,默认值:st ...

  2. GO开发[五]:golang结构体struct

    Go结构体struct Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(composition)这个最基础的特性 ...

  3. WdatePicker设置时间区间时,对开始时间和结束时间限制

    <input id="startDate" name="startDate"  type="text" readonly=" ...

  4. [知了堂学习笔记]_eclipse引入svn插件,并将项目同步到svn

    1. eclipse中不存在SVN问题的解决 1.1发现Team->Share project 下没有svn. 1.2下载安装svn插件. 选择help->Eclipse Marketpl ...

  5. main函数的两个参数

    #include "stdio.h" int main(int argc ,char **argv) { printf("argc = %d \n",argc) ...

  6. java进行图片和字符串的互相转换

    今天做项目,突然发现图片居然能转成字符串,字符串也能转成图片. 接下来让我们进行代码演示吧! /** * 字符串转图片 * @param imgStr --->图片字符串 * @param fi ...

  7. 有关linux下redis overcommit_memory的问题

    公司的几台Redis服务器出现不明故障,查看Redis日志,发现如下提示: 1 [34145] 01 Jan 17:42:02 # WARNING overcommit_memory is set t ...

  8. dBm与Vpp相互转换公式

    dBm = 10 + 20lg(0.5Vpp) Vpp = 2x10 以上公式均为阻抗为50欧的情况下计算得出的

  9. python_变量

    python中一切皆对象  什么是变量.变量名? --变量是存放数据的容器,变量名是区分容器的名字 例如 : a = 7,a就是变量的名字,叫a名字指向那个容器存放了数字 7 变量有什么形式?  变量 ...

  10. python_如何创建可管理的对象属性

    案例: 在面向对象编程中,我们把方法作为对象的接口,自己访问对象的属性可能是不安全的,或设计上不灵活,但是使用调用方法在形式上不如访问属性简洁 繁: circle.getRadius() circle ...