精华内容
下载资源
问答
  • 模块化编程

    2018-08-27 13:43:12
    模块化编程是一种软件设计技术,强调将程序的功能分离为独立的,可互换的模块,使得每个模块包含仅执行所需功能的一个方面所必需的一切。 模块接口表示模块提供和要求的元素。界面中定义的元素可由其他模块检测到。...

     

    模块化编程是一种软件设计技术,强调将程序的功能分离为独立的,可互换的模块,使得每个模块包含仅执行所需功能的一个方面所必需的一切。

    模块接口表示模块提供和要求的元素。界面中定义的元素可由其他模块检测到。该实现包含与接口中声明的元素对应的工作代码。模块化编程与结构化编程面向对象编程密切相关,它们都具有通过分解成更小的部分来促进大型软件程序和系统的构建的相同目标,并且都源于20世纪60年代。虽然这些术语的历史用法不一致,但“模块化编程”现在指的是将整个程序的代码高级分解为多个部分:结构化编程到结构化的低级代码使用控制流程,以及面向对象编程,以数据的形式使用对象,一种数据结构

    在面向对象的编程中,使用接口作为构建模块的架构模式被称为基于接口的编程

     

    展开全文
  • 模块化编程:项目表格模块化编程项目
  • Python模块概念模块化编程是很多高级编程语言都支持的。在Python中可以按照实现的功能把函数等分类,放到不同的文件中.py文件中,每个这样的文件就是一个模块(Module),文件名就是模块名。Python模块通常包括:函数...

    Python模块概念

    模块化编程是很多高级编程语言都支持的。在Python中可以按照实现的功能把函数等分类,放到不同的文件中.py文件中,每个这样的文件就是一个模块(Module),文件名就是模块名。Python模块通常包括:函数、变量、类。

    127103325_1_20180313074716896

    Python模块分类:

    127103325_2_20180313074717115

    模块使用方法:

    127103325_3_20180313074717224

    图:模块使用方法

    使用import语句导入模块:

    127103325_4_20180313074717365

    引用包的属性和方法

    使用 import 方式导入模块后,可以使用 . 运算符 使用模块内的函数(方法)和属性(模块内变量)。

    127103325_5_20180313074717474

    from 语句导入模块:

    导入模块中指定的成员(函数、变量)

    127103325_6_20180313074717568

    from import * 语句:

    导入一个模块内的所有内容

    127103325_7_20180313074717661

    import 的搜索路径:

    127103325_8_20180313074717786

    PYTHONPATH:

    127103325_9_20180313074717880

    标准库目录:

    安装Python时会安装标准库,标准库路径会加入到sys.path,导入模块时,会按照顺序搜索对应路径

    sys.modules:

    127103325_10_2018031307471883

    dir 函数:

    127103325_11_20180313074718240

    __import__ 函数:

    __import__ 函数根据给定的字符串名字,导入模块(动态导入)

    127103325_12_20180313074718396

    展开全文
  • 模块化编程的基本概念(什么是模块化编程?)一个模块就是一个源文件(.py),一个有用的模块是一系列可复用函数和类的集合,模块化编程的本质就是使用模块来解决问题、提高代码复用率。模块的设计和实现(怎么构建一个...

    模块化编程的基本概念(什么是模块化编程?)

    一个模块就是一个源文件(.py),一个有用的模块是一系列可复用函数和类的集合,模块化编程的本质就是使用模块来解决问题、提高代码复用率。

    模块的设计和实现(怎么构建一个合格的模块?)

    引入模块的程序被称为客户端程序,客户端程序要引用模块的函数和类、需要遵循的契约被称为应用程序接口(API Application Programming Interface),API描述了函数的功能以及该如何引用它。

    模块设计应当遵循以下原则:

    应当先设计API,再考虑实现。(需求驱动)

    应当控制模块设计的复杂度。(就像数学一样,只要极少的基本定理就可以证明一道复杂的证明题,这是理工科追求的简洁美)

    模块中应当不包括全局代码。一个模块的名称可以通过变量name来获取,当模块单独运行时name为main,故可以借助这一点把测试代码写进模块,以此保证只有模块单独运行时才能运行它,模块的功能是为客户端提供可复用的代码,除此之外不应当做任何操作。

    应当编写文档提供帮助信息。在函数的第一个逻辑行的字符串称为函数的文档字符串。函数的文档字符串用于提供有关函数的帮助信息。通常而言,文档字符串的第一行是简要描述,以大写字母开头;第二行是空行,其他行是详细描述。一般而言,有三种方法可以访问模块的文档字符串:

    1) help(函数)

    2) 函数名.doc

    3) 第三方自动化工具抽取形成帮助文档

    应当通过私有函数实现不被调用的模块函数,对外部隐藏实现细节。

    模块的导入和使用(客户端程序如何引入模块?)

     可以使用import语句导入模块

    Import math,sys

     导入模块后可以使用全限定名称访问模块中的对象

    模块名.对象名

     可以使用 from 模块名 import 对象1,对象2…(*)导入模块的部分(全部)成员。

     Imp模块中的reload函数可以重新加载已经导入的模块。

     可以使用import()动态导入模块

    包(模块是怎么组织的?)

     包是模块的上层结构,是一系列模块的集合。

     先在指定的目录中创建一个目录,在目录中创建一个init.py,再添加模块,这样一个包就创建好了。

    模块的导入顺序

    当前目录(主程序所在的目录或启动交互式Python的目录)

    PYTHONPATH中指定的目录

    Python标准库目录

    (sys.path属性返回一个路径列表,import时自动从该路径列表中搜索模块,如果没有,则程序报错。

    模块中定义的成员,包括变量、函数和类,可以通过内置的函数dir()查询)

    名称空间与名称查找顺序

    一、 当代码中使用名称x时,Python解释器把x解释为对象名(对象、函数、变量等),并按如下名称空间顺序查找以x命名的对象:

    (1)局部名称空间。当前函数或类的方法中定义的局部变量

    (2)全局名称空间。当前的模块(.py文件)中定义的变量、函数或类

    (3)内置名称空间。对每个模块都是全局的。作为最后的尝试,Python将假设x是内置函数或变量

    二、 Python使用特殊变量name来标记一个模块是否是顶层模块:

    (1)如果模块是作为一个正在运行的顶层模块、则其属性name设置为字符串main。

    (2)如果模块被另一个模块(不管顶层模块或其它模块)导入,则其属性name设置模块的名称。

    因此,在模块中编写仅当作为顶层模块运行时才执行的代码时,可以使用下列语句:

    if name == "main":

    #作为顶层模块运行时要执行的代码

    三、 Python解释器是顶层模块。使用Python解释器进行交互式执行Python代码时,Python解释器是顶层模块,其中定义的名称是全局变量,属于全局名称空间

    python文件搜索顺序

    1.定义为一个包的目录 foo

    2.foo.so, foomodule.so, foomodule.sl,或 foomodule.dll (已编译扩展)

    3.foo.pyo (只在使用 -O 或 -OO 选项时)

    4.foo.pyc

    5.foo.py

    展开全文
  • 概述模块化编程中OB1起着主程序的作用,FC或FB控制着不同的过程任务,相当于主循环程序的子程序。模块化编程中被调用块不向调用块返回数据。模块化程序的执行模块化编程中OB1起着主程序的作用,FC或FB控制着不同的...

    概述

    模块化编程中OB1起着主程序的作用,FC或FB控制着不同的过程任务,相当于主循环程序的子程序。模块化编程中被调用块不向调用块返回数据。

    6a4202f9fc19e51be4aac481e7a51207.png

    模块化程序的执行

    模块化编程中OB1起着主程序的作用,FC或FB控制着不同的过程任务,相当于主循环程序的子程序。模块化编程中被调用块不向调用块返回数据。

    884f1dbf32c2ddaaa9bafa9c3b8e97a2.png

    模块化编程实例

    1.模块化编程实例1 - 液位监视

    • 监视一个慢变得过程不需要每次扫描都进行。如果过程每隔一定时间或根据需要进行处理,程序将更有效。• 在OB1循环扫描处理时,可以按照一定的周期对液位进行监视。

    设计方法:

    • 确定液位监视的组成部分和它们的关系;

    • 设计完成所要求控制任务的功能;

    • 规划从OB中调用块完成功能的程序执行

    过程;

    • 对程序块的每个段加上文字注释和标题。

    解决方案:

    • 建立一个功能FC,可以监视和控制任务;

    • 建立一个OB,其中每隔一定时间调用块

    (功能)。

    77f4f619eaac0bf41e3329502ea1bcc8.png

    2.模块化编程实例2

    有两台电动机,控制模式是相同的,按下启动按钮(电动机1为I0.0,电动机2为I1.0),电动机起动运行(电动机1为Q4.0,电动机2为Q4.1);按下停止按钮(电动机1为I0.1,电动机2为I1.1),电动机停止运行。

    分析:

    这是典型的起保停电路,采用模块化编程的思想,分别在FC1和FC2中编写电机的控制程序,在主程序OB1中进行FC1和FC2的调用。

    5dd076935a98ac7cff79def80e6af199.png

    9d897eac38d41f0b70d7c9b9f103a2ec.png

    结构化编程

    Ø 将复杂的任务分解成一些能够反映过程的工艺、功能或可以反复使用的单独解决的小任务,这些任务由相应的程序块来表示;

    Ø 某些程序块可以用来实现相同或相似的功能;

    Ø 调用者可以是各种逻辑块,包括用户编写的OB、FB、FC和系统提供的SFB与SFC;

    Ø 被调用的块是OB之外的逻辑块;

    Ø 通用的数据和代码可以共享。

    800acfbd603d8a1161087cebec8a2e3b.png

    结构化编程

    结构化编程的优点:

    1各单个任务块的创建和测试可以相互独立地进行;

    2通过使用参数,可将块设计得十分灵活;

    3块可以根据需要在不同的地方以不同的参数数据记录进行调用;

    4在预先设计的库中,能够提供用于特殊任务的“可重用”块。

    结构化编程实例-油漆调制

    1选择产品添加剂,需要决定哪个罐的成分要加到混合罐内。

    2在选择开关的选择基础上,组织块调用相应的程序块,分配当前的参数,控制混合罐的流入量。

    设计方法:

    1. 确定哪些部件和操作可以应用于所有的罐和相关的控制;

    2. 建立功能或功能块,完成所要求的控制;

    3. 建立块的变量定义表,以便于对要操作的罐和控制进行地址分配;

    4. 设计一个程序来根据选择开关调用功能或功能块。

    解决方案:

    1. 建立一个功能块或功能控制罐的流出量;

    2. 为相关的块建立变量定义表;

    3. 建立一个OB块来根据选择开关调用功能或功能块。

    4c9da1ba0930d485edaa66bfd61456bd.png

    展开全文
  • Javascript模块化编程 如今经常听到模块化编程的这个概念,在WEB前端的领域更是如火如荼,相应的工具与框架层出不穷,那么到底为什么要模块化编程呢: 什么是模块/模块化 模块化进化史 为什么要模块化 *模块化的...
  • Javascript模块化编程

    2021-02-03 06:48:19
    Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,它不支持"类"(class),更遑论"模块...
  • javascript模块化编程04CMD模块化编程规范 规范 说明 github官方文档说明地址 在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范。该规范明确了模块的基本书写格式和...
  • javascript模块化编程05ES6模块化编程规范 语法非常简单也是现在最流行的模块化开发模式,虽然ES6已经是标准化但是多数的浏览器是不支持ES6语法的所以在使用浏览器端时,我们需要通过babel将其转化为ES5的js代码,...
  • javascript模块化编程03AMD模块化编程规范 规范 说明 AMD规范,全称是Asynchronous Module Definition,即异步模块加载机制。从它的规范描述页面看,AMD很短也很简单,但它却完整描述了模块的定义,依赖...
  • 论JavaScript模块化编程

    2020-10-22 18:25:13
    主要介绍了论JavaScript模块化编程,感兴趣的小伙伴们可以参考一下
  • 模块化编程是一种非常常见Javascript编程模式。它一般来说可以使得代码更易于理解,但是有许多优秀的实践还没有广为人知。 基础 我们首先简单地概述一下,自从三年前Eric Miraglia(YUI的开发者)第一次发表博客...
  • javascript模块化编程规范 CommonJS AMD CMD ES6 CommonJs 规范 说明 1.自行百度查阅文字性描述,本文只精简介绍 2.每个文件都可当作一个模块 3.在服务器端:模块的加载和运行是同时加载的 4.在浏览器端...
  • JavaScript 模块化编程七日
  • 概述模块化编程中OB1起着主程序的作用,FC或FB控制着不同的过程任务,相当于主循环程序的子程序。模块化编程中被调用块不向调用块返回数据。模块化程序的执行模块化编程中OB1起着主程序的作用,FC或FB控制着不同的...
  • 本文主要讲了8051单片机模块化编程技巧 ,希望对你的学习有所帮助。
  • Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。 但是,Javascript不是一种模块化编程语言,它不支持"类"(class),更遑论"模块...
  • 主要介绍了JavaScript 模块化编程(笔记) ,需要的朋友可以参考下
  • Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块但是,Javascript不是一种模块化编程语言,它不支持类class,更遑论模块module了
  • 现在生产的许多单片机对8051的内核进行了扩展,比如,内部看门狗,ADC转换、EEPROM、PWM等功能。在编程控制程序时,如需要利用这些扩展...在调试程序时就显得不太方便了,较好的方法是根据程序段的功能进行模块化编程
  • 模块化编程技巧

    2019-11-25 16:30:31
    模块化编程技巧 提到 C 语言源文件,大家都不会陌生。因为我们平常写的程序代码几乎都在这个 XX.C 文件里面。编译器也是以此文件来进行编译并生成相应的目标文件。作为模块化编程的组成基础,我们所要实现的所有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,361
精华内容 6,144
关键字:

模块化编程