Python从设计之初就已经是一门面向对象的语言了,正因如此,在Python中创建一个类和对象是很容易的。

什么是面向对象?

  面向对象程序设计(Object-oriented programming,OOP)是一种程序设计范型,也是一种程序开发方法。对象指的是类的实例,类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫作类的实例化。面向对象程序设计将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。面向对象编程中的主要概念如下:

  类(class):

  定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的行为。比如拿人来说,人类是一个类,黄种人、白种人和黑人;男人和女人,都具有人类的特征或行为,比如身高、体重、肤色、吃饭、睡觉、生老病死等等。一个类中可以有成员函数和成员变量。在面向对象的术语中,成员函数被称为方法;成员变量被称为属性。

  对象(object):

  是类的实例。当一个类被实例化时,他的属性就有了具体的值(比如,人类是一个类,具体到某一个人的时候,他就有具体的身高、体重、肤色等)。每个类可以有若干个可以被实例化的对象。在操作系统中,系统给对象分配内存空间,而不会给类分配内存空间。

  继承(inheritance):

  是指通过一个已有的类(父类)定义另外一个类(子类),子类共享父类开放的属性和方法。子类的对象除了是一个子类的一个实例,还是其父类的一个实例。举个例子:人类做为父类,实例化一个子类黄种人,黄种人(子类)实例化一个对象中国人。中国人除了是黄种人(子类)的一个实例,也是人类(父类)的一个实例。

  封装性(Encapsulation):

  封装性是指类在定义时可以将不能活不需要其他类知道的成员定义成私有成员,而只公开其他类需要使用的成员,以达到信息隐蔽和简化的作用。比如:通过眼睛观察我们可以大概知道其他人的肤色、性别等等,但是比如血型、DNA等等是无法直接得知的。

  多态性(Polymorphism):

  是指同一方法作用于不同的对象,可以有不同的解释,产生不同的执行结果。在具体实现方法上,多态性是允许开发者将父对象的变量设置为对子对象的引用,赋值之后,父对象变量就可以根据当前的赋值给他的子对象的特性以不同的方式运作。比如:黄种人和白种人还有黑种人都属于人类,但是其肤色属性是不一样的(赋值不同)。

  

  随着面向对象编程(OPP)的普及,面向对象程序设计(OOD)也只日臻成熟,形成了以UML(Unified Modieling Language)为代表的标准建模语言。UML是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供了模型化和可视化支持,包括由需求分析到规格,再到构造和配置的所有阶段。

Python-面向对象编程01_什么是面向对象的更多相关文章

  1. [.net 面向对象编程基础] (2) 关于面向对象编程

    [.net 面向对象编程基础]  (2)  关于面向对象编程 首先是,面向对象编程英文 Object-Oriented Programming 简称 OOP 通俗来说,就是 针对对象编程的意思 那么问 ...

  2. 洗礼灵魂,修炼python(31)--面向对象编程(1)—面向对象,对象,类的了解

    面向对象 1.什么是面向对象 (图片来自网络) 哈哈,当然不是图中的意思. 1).面向对象(Object Oriented,OO)是软件开发方法.利用各大搜索引擎得到的解释都太官方,完全看不懂啥意思对 ...

  3. C++基础——C面向过程与C++面向对象编程01_圆面积求解

    #include "iostream";//包含C++的头文件using namespace std;//使用命名空间std标准的命名空间(在这个命名空间中定义了很多标准定义)vo ...

  4. python核心编程学习记录之面向对象编程

    未完待续525

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

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

  6. python笔记 - day7-1 之面向对象编程

    python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...

  7. 那些年被我坑过的Python——玄而又玄(第六章 面向对象编程基础)

    面向对象编程: 面向对象顾名思义,就是把组织代码的粒度从函数级别抽象到对象级别,对象是通过类来生成的,类可以想象为模板或进本框架而对象是在原有模板或框架的基础上增加详细信息的实体,类,有分类.聚类的含 ...

  8. python面向对象编程 -- 封装、继承

    面向对象编程 -- 封装.继承 面向对象编程三要素:封装.继承和多态.本文主要看和封装.继承相关的概念:在python中多态的概念比较模糊,本文不做讨论. 1 封装 封装:将数据和操作组装到一起,对外 ...

  9. python面向对象编程学习

    python面向对象编程 基本概念理解 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作 ...

随机推荐

  1. touch python

    一  使用while循环输出 1 2 3 4 5 6 8 9 10. i=0 while i<10: i=i+1 if i == 7: continue print(i) 二  求 1-100所 ...

  2. windows server 2008 配置DNS服务器与IIS

    0x00: 总结这个星期在学校学的. 0x01安装: 首先你得安装好windows server 2008 然后在添加角色->安装IIS和DNS服务器 勾选好你要安装的. 安装-> 根据老 ...

  3. OrhtoMCL 使用方法

    OrthoMCL的使用分13步进行,如下: 1. 安装和配置数据库 Orthomcl可以使用Oracle和Mysql数据库,而在这里只介绍使用Mysql数据库.修改配置文件/etc/my.cnf,对M ...

  4. Tkinter Label(标签)

      Tkinter Label : 这个小工具,实现了显示框,在那里你可以把文本或图像.这个widget中显示的文本可以在任何时候你想要更新.   这个小工具,实现了显示框,在那里你可以把文本或图像. ...

  5. MongoDB出现CPU飚高,如何强制停止正在执行的操作

    如果发出了一个执行耗时很长的任务给MongoDB服务器,客户端强制终止会导致任务依然在服务器端执行. 这时MongoDB提供了查询和管理正在执行任务的方式. // db.currentOp() 获得当 ...

  6. Python实践练习目录

    缘由 做中学才是最好的方法,通过这些项目来加强自己的Python掌握程度. 原则 成体系地学,不搞"题海战术" 通所有不如精一物,精一物方可通所有 走心学,忌浮躁 项目列表 字符串 ...

  7. Mysql 源码编译安装 ( 5.5 、5.6 共存 )

    简介: 如何在一台服务器同时运行两 ( 多 ) 个 MySQL 服务. 1.MySQL 5.6 shell > useradd -r -s /sbin/nologin mysql shell & ...

  8. 【290】Python 函数

    参考:Python 函数 参考:7.3 给函数参数增加元信息(增加参数的数据类型) 目录: 一.语法 二.说明 三.参数传递 四.参数 4. 1 必备参数 4.2 关键字参数 4.3 缺省参数 4.4 ...

  9. 【303】C# 复制窗体 & 修改名称

    参考:C#复制粘贴窗体 参考:VS修改项目解决方案名称 一.复制窗体 在“解决方案资源管理器”(以下简称:管理器)中选择要复制的窗体,比如要复制Form2,则在Form2.cs上右单击,选择复制. 在 ...

  10. LightGBM

    1.简介 lightGBM包含两个关键点:light即轻量级,GBM 梯度提升机 LightGBM 是一个梯度 boosting 框架,使用基于学习算法的决策树.它可以说是分布式的,高效的,有以下优势 ...