面向对象:

是一种程序设计范型

作用: 提高软件的重用性和灵活性,扩展性

世界万物一切皆为对象,对象即是指由特定状态,特征,行为的实体
 

知识点一: 代码的重用

举个栗子
比如小月月有了一个女朋友1,因为一些其他原因,这个女朋友1离开了,不久以后,小月月又
找到了一个女朋友2,那么这个女朋友2和女朋友1肯定是有一些基本的共性的 ,比如走路,
是个女性,都有自己的名字,这时候,如果小月月是个富二代,他想找个小三,小三也具有
这些基本的共性,所以他就可以很快的new出来一个小三,只需要在此基础上添加额外自己想要
的功能就可以了,我们把这些基本的功能写成代码这个时候
注意了:
通过面向对象,就可以实现一些基本功能的多次调用
 
疑点:通过函数式编程好像也可以实现类似代码重用的功能?
但是自己写的代码有时候需要传入一个参数,来告诉这个代码是谁在调用它,不然以前的去女朋友1来调用
这段代码的时候,你都不知道,想想是一件很恐怖的事情,所以通过面向对象就不需要传入参数 可以直接
调用,面向对象会自己识别,是谁在调用这段代码......
 

知识点二:代码的继承和封装

小月月是东北人 ,小月月生活的很幸福,他们生了一个boby,小月月当父亲了,这个boby会有一些地方
像小月月对吧 ,因为他是小月月的孩子嘛,帅气的外表,智慧的大脑 ,好了 
 
注意了:
这个时候通过面向对象把小boby封装起来,继承小月月的(比如东北话)代码属性 
 
疑点: 函数式编程可以实现啊 ,为什么要用面对象呢?
函数式编程是通过字典的形式把这种父与子的关系写入到内存中,然后来实现继承一些代码属性, 
所以写在内存中,这就允许了任何人都可以来改动,当然在我们现实生活中这是不允许的 
而面向对象会把这个小boby封装起来,可以正常调用,并且保持继承的关系 外面的人不知道怎么实现的,
是改动不了的,所以你懂了.... 
 

知识点三: 多态

一个人可以对于吃来说,可以有不同的形式
比如说你可以站着吃饭 ,你也可以坐着吃饭   
 
 

知识点四:类的定义

class  Person(object):    #声明了一个类
pass people_one = Person("bds")
class :是一个抽象的,泛指的东西  
Person: 代表所有人,一个物种,人的一些基本的特征 ,比如说名字,血液,毛发,
people_one: 这就是一个生动的现实的人类,是一个对象 
 一句话: people_one是通过class Person 实例化出来的一个对象
 
 
代码演示: 
class  Person(object):
def __init__(self,name) #初始化函数
self.name = name
def say_name(self):
print "my name is %s" % self.name p_one = Person("bds")
p_one.say_name()

  

p_one是Person实例化的一个对象,在实例化对象时 ,就会执行初始化函数,所以比如一些基本的特征,属性
就可以通过初始化函数来定义
 
理解:什么样的特征需定义self呢?
一个吃的特征,每个人都是一样的,每个人都可以吃,所以这个就是大家共性的,就不需要初始化来区别,但是 
比如名字,每个人的都不同的,所以这个name 就需要初始化函数来定义name,来区别每个人。
 
方法,属性,函数,功能
举个栗子 
假如有一个杯子,他有各种各种的属性,长,宽,高,形状
它有一个功能之一是用来装水,我们调用这个装水的动作就叫做方法 
 
           函数实现各种功能                 调用功能的动作就是方法
函数              -->               功能                    -->                        方法 
 
 
 
 
 
 
 
 

python 面向对象简单理解的更多相关文章

  1. python 面向对象深入理解

    面向过程 函数式编程 面向对象编程:面向对象是由类和对象组成,只要用类和对象实现的,就是面向对象编程 def  Bar():     print  "This is  Bar " ...

  2. javascript javascript面向对象的理解及简单的示例

    javascript面向对象的理解及简单的示例 零.本节重点: 1.封装: 2.继承: 壹.下面理解: 一. javascript面向对象概念: 为了说明 JavaScript 是一门彻底的面向对象的 ...

  3. python面向对象一

    1.1三种编程方法论 1.面向过程:把复杂的任务一步一步分解成简单的任务. 2.函数式编程:思想上接近于数学运算,根据某种方式,根据方式得出的结果. 3.面向对象编程:一种编程方式,需要使用" ...

  4. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  5. python 面向对象学习

    ------Python面向对象初 下面写一个类的简单实用,以便方便理解类 #python 3.5环境,解释器在linux需要改变 #阅读手册查询readme文件 #作者:S12-陈金彭 class ...

  6. python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异

    1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html   1.__init__() 创建对 ...

  7. #5 Python面向对象(四)

    前言 本节将是Python面向对象的最后一篇博文了,这节将记录类的特殊方法.特殊成员方法.旧类和新类的不同,以及一些其他知识.Go! 一.类的特殊方法 Python有三种特殊方法:实例方法.静态方法. ...

  8. python面向对象入门(1):从代码复用开始

    本文从代码复用的角度一步一步演示如何从python普通代码进化到面向对象,并通过代码去解释一些面向对象的理论.所以,本文前面的内容都是非面向对象的语法实现方式,只有在最结尾才给出了面向对象的简单语法介 ...

  9. python面向对象(封装、继承、多态)+ 面向对象小栗子

    大家好,下面我说一下我对面向对象的理解,不会讲的很详细,因为有很多人的博客都把他写的很详细了,所以,我尽可能简单的通过一些代码让初学者可以理解面向对象及他的三个要素. 摘要:1.首先介绍一下面向对象 ...

随机推荐

  1. 【HDU 2853】Assignment (KM)

    Assignment Problem Description Last year a terrible earthquake attacked Sichuan province. About 300, ...

  2. 李洪强iOS开发-网络新闻获取数据思路回顾

    李洪强iOS开发-网络新闻获取数据思路回顾 01 创建一个继承自AFHTTPSessionManager的工具类:LHQNetworkTool 用来发送网络请求获取数据  1.1 定义类方法返回单例对 ...

  3. C++ Socket TCP "Hello World!"

    这是C++ SOCKET网络程序中的C/S结构之TCP "Hello World !",共两个控制台工程: //////////////////////////////////// ...

  4. [译]GotW #1: Variable Initialization 续

    Answer 2. 下面每行代码都做了什么? 在Q2中,我们创建了一个vector<int>且传了参数10和20到构造函数中,第一种情况下(10,20),第二种情况是{10, 20}. 它 ...

  5. 没有document.getElementByName

    首先声明的是: document.getElementByName方法没有.document.getElementsByName得到的是标签的数组 document.getElementId得到的是某 ...

  6. 17.1.1.1 Setting the Replication Master Configuration 设置复制的master 配置:

    17.1.1.1 Setting the Replication Master Configuration 设置复制的master 配置: 在一个复制master,你必须启用binary loggin ...

  7. 《Gulp 入门指南》 : 使用 gulp 压缩 JS

    <Gulp 入门指南> : 使用 gulp 压缩 JS 请务必理解如下章节后阅读此章节: 安装 Node 和 gulp 访问论坛获取帮助 压缩 js 代码可降低 js 文件大小,提高页面打 ...

  8. Chrome浏览器插件VisualEvent,可以方便的查看页面绑定的事件

    http://files.cnblogs.com/files/jiqing9006/VisualEvent.zip

  9. Unity3D插件之Easy Touch 3.1(1): Easy Joystick

    先看官方介绍:https://www.assetstore.unity3d.com/#/content/3322 (Allows you to quickly and easily develop a ...

  10. MD5Helper辅助类

    DES加密和解密 public class MD5Helper { ///DES加密 ///sKey public string MD5Encrypt(string pToEncrypt, strin ...