zoukankan      html  css  js  c++  java
  • Python--反射(重点)、面向对象内置方法:如__str__、面向对象的软件开发

    复习:
    Python3统一了类与类型
    类的名称空间在定义阶段产生,看名称空间:类.__dict__

    Python3特点:可以多继承
    Python3都是新式类

    继承意义:解决重复代码
     
    组合:也是解决重复代码
    一个属性,比方老师有生日,就定义一个日期类,t.birth=Date()
     
    抽象类:
    继承实现原理:分新式类和经典类
     
    如果所有分支没有汇聚,经典类和新式类继承原理一样,一条一条分支找
    如果所有分支汇聚到一点,经典类:深度优先
    新式类:广度优先
     
    多态与多态性:
    字符串本身只能存一个值
    多态基于继承来的概念
     
    封装:

    在python中用双下划线的方式实现隐藏属性(设置成私有的)

     
    类中所有双下划线开头的名称如__x都会自动变形成:_类名__x的形式:
     

    面向对象的软件开发:

    面向对象的软件工程包括下面几个部分:

    1.面向对象分析(object oriented analysis ,OOA)

    软件工程中的系统分析阶段,要求分析员和用户结合在一起,对用户的需求做出精确的分析和明确的表述,从大的方面解析软件系统应该做什么,而不是怎么去做。面向对象的分析要按照面向对象的概念和方法,在对任务的分析中,从客观存在的事物和事物之间的关系,贵南出有关的对象(对象的‘特征’和‘技能’)以及对象之间的联系,并将具有相同属性和行为的对象用一个类class来标识。

        建立一个能反映这是工作情况的需求模型,此时的模型是粗略的。

    2 面向对象设计(object oriented design,OOD)

        根据面向对象分析阶段形成的需求模型,对每一部分分别进行具体的设计。

        首先是类的设计,类的设计可能包含多个层次(利用继承与派生机制)。然后以这些类为基础提出程序设计的思路和方法,包括对算法的设计。

        在设计阶段并不牵涉任何一门具体的计算机语言,而是用一种更通用的描述工具(如伪代码或流程图)来描述

    3 面向对象编程(object oriented programming,OOP)

        根据面向对象设计的结果,选择一种计算机语言把它写成程序,可以是python

    4 面向对象测试(object oriented test,OOT)

        在写好程序后交给用户使用前,必须对程序进行严格的测试,测试的目的是发现程序中的错误并修正它。

        面向对的测试是用面向对象的方法进行测试,以类作为测试的基本单元。

    5 面向对象维护(object oriendted soft maintenance,OOSM)

        正如对任何产品都需要进行售后服务和维护一样,软件在使用时也会出现一些问题,或者软件商想改进软件的性能,这就需要修改程序。

        由于使用了面向对象的方法开发程序,使用程序的维护比较容易。

        因为对象的封装性,修改一个对象对其他的对象影响很小,利用面向对象的方法维护程序,大大提高了软件维护的效率,可扩展性高。

        在面向对象方法中,最早发展的肯定是面向对象编程(OOP),那时OOA和OOD都还没有发展起来,因此程序设计者为了写出面向对象的程序,还必须深入到分析和设计领域,尤其是设计领域,那时的OOP实际上包含了现在的OOD和OOP两个阶段,这对程序设计者要求比较高,许多人感到很难掌握。

        现在设计一个大的软件,是严格按照面向对象软件工程的5个阶段进行的,这个5个阶段的工作不是由一个人从头到尾完成的,而是由不同的人分别完成,这样OOP阶段的任务就比较简单了。程序编写者只需要根据OOd提出的思路,用面向对象语言编写出程序既可。

        在一个大型软件开发过程中,OOP只是很小的一个部分。

        对于全栈开发的你来说,这五个阶段都有了,对于简单的问题,不必严格按照这个5个阶段进行,往往由程序设计者按照面向对象的方法进行程序设计,包括类的设计和程序的设计

    反射:

    __str__的用法:是一个绑定方法

    注意:__str__一定要有一个字符串的返回值

    __del__的用法:

    __del__一般用于程序执行完毕
    对象从内存清掉,就会触发__del__的执行

    item系列:

     

     

    其余部分,自行研究

    描述符(__get__,__set__,__delete__)
     
    metaclass元类,是类的类
  • 相关阅读:
    el-cascader回显问题
    nuxt + ueditor国际化
    nuxt + element + i18n 国际化element(我用的i18n@8.x版本)
    CDH| 组件的使用-Flume| Kafka| Oozie基于Hue的任务调度
    CDH| Hive| Hue| Sqoop| Impala等组件安装部署
    CDH| 组件的安装-HDFS的配置 | Flume| Kafka|
    Flink| 实时需要分析
    Flink| 状态一致性
    Flink| 容错机制
    Flink| 第一个窗口触发时间
  • 原文地址:https://www.cnblogs.com/metianzing/p/7132444.html
Copyright © 2011-2022 走看看