• python 面向对象简单理解


    面向对象:

    是一种程序设计范型 

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

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

    知识点一: 代码的重用

    举个栗子
    比如小月月有了一个女朋友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,来区别每个人。
     
    方法,属性,函数,功能
    举个栗子 
    假如有一个杯子,他有各种各种的属性,长,宽,高,形状
    它有一个功能之一是用来装水,我们调用这个装水的动作就叫做方法 
     
               函数实现各种功能                 调用功能的动作就是方法
    函数              -->               功能                    -->                        方法 
     
     
     
     
     
     
     
     
     





    本文是纯属个人学习理解,如有遗漏误导,请大神果断指正......
  • 相关阅读:
    D3.js比例尺 定量比例尺 之 线性比例尺(v3版本)
    D3.js的基础部分之数组的处理 集合(Set)(v3版本)
    D3.js的基础部分之数组的处理 映射(Map)(v3版本)
    D3.js (v3)+react框架 基础部分之认识选择集和如何绘制一个矢量图
    D3.js的一些基础部分 (v3版本)
    Flask 教程 第九章:分页
    Flask 教程 第八章:粉丝
    Flask 教程 第七章:错误处理
    Flask 教程 第六章:个人主页和头像
    Flask 教程 第五章:用户登录
  • 原文地址:https://www.cnblogs.com/budongshu/p/90793edc8baed94ae498304146cd8475.html
Copyright © 2020-2023  润新知