精华内容
下载资源
问答
  • 我自己封装了一个simulink模块AI并导入库,然后利用该模块搭建...使用该命令,能够修改其他模块,就是自己定义模块称找到ADADM/AI这个对象,请问有人知道原因么?是不是sinmulink支持用命令行访问自定义模块
  • NodeJS如果定义一个对象,以便让其它模块来共享该对象封装的信息.
  • RequireJS中定义一个模块,总的来说有2种方式:简单键值对和函数依赖式。 1.简单键值对:一个模块仅含有值对,没有任何依赖 define({ color: "black", size: 1, method1: function() {}, method2: function...

    RequireJS中定义一个模块,总的来说有2种方式:简单键值对和函数依赖式。

    1.简单键值对一个模块仅含有值对,没有任何依赖

    define({
        color: "black",
        size: 1,
        method1: function() {},
        method2: function() {}
    });

    这种写法虽然简单,但是有很大的局限性,仅仅是定义了该模块的返回值,不能做一些额外的初始化工作。

    通过下面下面这种方式来定义模块,灵活性更高,我们可以在函数体内写一些模块初始化的代码。

    define(function () {
    
        //Do initial work here
    
        return {
            method1: function() {},
            method2: function() {}
        };
    });


    2.函数依赖式则第一个参数是依赖的名称数组;第二个参数是回调函数。

    在模块的所有依赖加载完毕后,回调函数会被调用来定义该模块。

    define(["module1"], function(moudle1) {
            
    		function calc()
    		{
    			return moudle1.val;
    		}
    		
    		return {"get":calc};
        }
    );


    这2种定义模块的方式是等价的,requirejs能够保证一个模块只会被加载一次,所以如果A、B模块都依赖于C模块,那么其实A和B模块使用的都是同一个对象。

    //C模块
    define([],function(){
     
    	var count = 0;
    	
    	function sayCount()
    	{
    		count++;
    		return count;
    	}
    
    	return {"say":sayCount};
    
    });
     
    // A模块
    require(['C'],
      function(module) {
             cosole.log(module.say());//1
    });
     
    // B模块
    require(['C'],
      function(module) {
    		cosole.log(module.say());//2
    });



    如果我们定义了一个模块,很多时候我们希望它能够被多个模块使用而不会相互干扰。

    //C模块
    define([],function(){
     
     // 定义一个类
     function DemoClass()
     {
    	var count = 0;
    	this.say = function(){
    		count++;
    		return count;
    	};
     }
     
     return function(){
    	//每次都返回一个新对象
    	return new DemoClass();
     };
    
    });
     
    // A模块
    require(['C'],
      function(module) {
             cosole.log(module().say());//1
    });
     
    // B模块
    require(['C'],
      function(module) {
    		cosole.log(module().say());//1
    });

    每次调用模块C,返回都是一个新的对象,通过这种方式能够避免A和B模块在使用模块C时候的干扰和冲突。


    展开全文
  • const对象为什么可以头文件中定义

    千次阅读 2014-06-15 10:13:53
    首先明确两点: const对象默认为文件的局部变量。《C++ Primer 4》p86头文件用于声明而不是用于定义。《C++ Primer 4》p100,

    对于头文件中为什么可以定义const变量(或对象),以及推荐用const代替#define宏定义,之前一直概念不清晰,今天就总结一下。

    之前在网上查过,解释的都不太到位,或者角度不一样(从编译原理、强弱定义?),总之不能清晰理解,发现《C++ Primer》上基本上涵盖了所有平常遇到的C/C++问题,而且《C++ Primer》地位正宗,上面的解释可信度自然没得说。so,有问题,先找《C++ Primer》。

    1. const对象默认为文件的局部变量。《C++ Primer 4》p86,

    2.头文件用于声明而不是用于定义。《C++ Primer 4》p100,原因是:

    1.定义和声明的区别:定义只可以出现一次,而声明则可以出现多次。下面这些是定义(怎样判断的?),都不应该出现在头文件中:

    extern int ival = 10;

    double fica_rate;

    同一个程序中有两个以上文件含有上述任一个定义都会导致多重定义链接错误。编译时可能不会报错,因为编译时每个源文件都是单独编译生成目标文件,彼此是相互独立不可见的,只有在链接的时候整个工程才作为一个整体,链接主要解决模块间的相互引用问题,而在编译阶段生成目标文件是,会暂时搁置那些外部引用,外部引用是在链接时进行确定的。

    因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。但是……

    3.对于头文件不应该含有定义这一规则,有三个例外。头文件中可以定义类、值在编译时就已知道的const对象(数组的大小可以用const int型变量定义,这在C中是不行的),和inline函数。《C++ Primer 4》p100,在补充一个,模板"必须"定义在头文件中,包括模板类和模板函数。

    下面来解释原因:

    1.这些实体可以在多个源文件中定义,只要每个源文件中的定义是相同的。

    2.在头文件中定义这些实体,是因为编译器需要他们的定义(不只是声明)来产生代码(这句话对模板同样适用)。例如:为了产生能定义或使用类的对象的代码,编译器需要知道组成该类型的数据成员。同样还需要知道能够在这些对象上执行的操作。类定义提供所需要的信息。当然(但是)类定义内部的成员可以是声明,类定义和类内部成员的定义不是一回事哦,可以不同步进行,也”不建议“类定义时定义类内部函数。在头文件中定义const对象则需要更多解释。

    3.下面是本节的重点了(引自《C++ Primer 4》,满满的都是干货):

    const 变量默认时是定义该变量的文件的局部变量。正如我们现在所看到的,这样设置默认情况的原因在于允许 const 变量定义在头文件中。

    在 C++ 中,有些地方需要放置常量表达式。例如,枚举成员的初始化式必须是常量表达式。在以后的章节中将会看到其他需要常量表达式的
    例子。

    一般来说,常量表达式是编译器在编译时就能够计算出结果的表达式。当 const 整型变量通过常量表达式自我初始化时,这个 const 整型变量就可能是常量表达式。而 const 变量要成为常量表达式,初始化式必须为编译器可见。 为了能够让多个文件使用相同的常量值,const 变量和它的初始化式必须是每个文件都可见的。而要使初始化式可见,一般都把这样的 const 变量定义在头文件中。那样的话,无论该 const 变量何时使用,编译器都能够看见其初始化式。

    但是,C++ 中的任何变量都只能定义一次(第 2.3.5 节)。定义会分配存储空间,而所有对该变量的使用都关联到同一存储空间。因为 const 对象默认为定义它的文件的局部变量,所以把它们的定义放在头文件中是合法的。 

    这种行为有一个很重要的含义:当我们在头文件中定义了 const 变量后,每个包含该头文件的源文件都有了自己的 const 变量,其名称和值都一样。 

    当该 const 变量是用常量表达式初始化时,可以保证所有的变量都有相同的值。但是在实践中,大部分的编译器在编译时都会用相应的常量表达式替换这些 const 变量的任何使用。所以,在实践中不会有任何存储空间用于存储用常量表达式初始化的 const 变量。 
    如果 const 变量不是用常量表达式初始化,那么它就不应该在头文件中定义(若不初始化const变量,这个const变量有什么用呢?)。相反,和其他的变量一样,该 const 变量应该在一个源文件中定义并初始化。应在头文件中为它添加 extern 声明,以使其能被多个文件共享。


    下面再补充点关于编译和链接方面的知识:

    编译:将预处理生成的文件,经过词法、语法、语义分析及优化后编译成若个目标模块(linux中的 .o 或win32中的 .obj)。

    链接:由链接程序将编译后形成的一组目标模块以及他们所需要的库函数链接在一起,形成一个完整的载入模型。(win32中的可执行程序 .exe)

    编译可以理解为,将高级语言翻译成计算机可以理解的二进制代码,即机器语言。编译器需要的是语法正确,函数与变量的声明正确。

    链接时主要链接函数和全局变量,目标文件之间相互链接自己所需要的函数和全局变量,而函数可能来自其他目标文件或库文件。

    链接可分为:

    1. 静态链接
    2. 载入时动态链接
    3. 运行时动态链接

    展开全文
  • amd模块定义模式

    千次阅读 2017-03-27 12:45:25
    谈及前端模块化,自然会想到AMD(异步模块定义)和CMD(通用模块定义),这里我着重谈一下AMD的相关内容 AMD的整体目标是提供模块化的JavaScript解决方案,以便开发人员使用。 关于AMD有两个关键概念是值得我们注意...

    谈及前端模块化,自然会想到AMD(异步模块定义)和CMD(通用模块定义),这里我着重谈一下AMD的相关内容

    AMD的整体目标是提供模块化的JavaScript解决方案,以便开发人员使用。

    关于AMD有两个关键概念是值得我们注意的,它们是用于模块定义的define方法和用于处理依赖加载的require方法。使用以下方式,define用于定义已命名或未命名模块。

    define(
    	module_id//可选
    	[dependencies]//可选
    	function(){}//实例化模块或对象的函数
    	);

    module_id是一个可选参数,当遗漏这个参数时,我们程这个参数是匿名的。

    回到define方法,dependencies参数表示我们定义模块所需的依赖数组,第三个参数适用于执行实例化模块的函数。示例如下:

    define(
    	"myModule",
    	['foo','bar'],
    	function (foo,bar){
    		var myModule={
    			fn:function(){
    				console.log("hello");
    			}
    		};
    	    return myModule;
    	}
    )
    
    另外一种方式,return直接返回要暴露的内容。

    define(
        "myModule",
        ['math', 'graph'],
        function(math, graph) {
    	   return {
    		    plot: function(x, y) {
    			return graph.draw(math.grid(x, y))
    		    }
    	    }
        };
    })
    那如果我们希望动态获取依赖呢,这样做依赖的加载会不会更灵活高效。

    define(function(require){
    	var isReady=false;
    	var foobar;
    	require(["foo","bar"],function(foo,bar){
    		 isReady=true;
    		 foobar=foo()+bar();
    	});
    	//依然返回一个模块
    	return{
            isReady:isReady;
            foobar:foobar;
    	}
    });
    
    模块定义好以后,如何加载使用呢,这里有curl.js和RequireJS两种类型的加载器。

    以最熟悉的requireJS为例,加载上面定义好的myModule模块

    require(["app/myModule"],function(myModule){
    
      var module=new myModule();
      module.fn();
    
    
    })
    

    为何AMD是编写模块化JavaScript的更好选择

    ·对于如何完成灵活模块的定义提供了明确的建议

    ·比很多人依赖的现有全局命名空间和<script>标签解决方案都更加简洁。有一种简洁的方式可以声明可能的独立模块和依赖。

    ·封装模块的定义,帮助我们避免全局命名空间被污染

    ·如果需要,可以延迟加载脚本



    展开全文
  • 常规方法: 以导入numpy 为例 (1)import numpy (2) import numpy as np(别名,自己定义) (3)import numpy *(推荐) 动态导入: 待补充

    常规方法:

    以导入numpy 为例

    (1)import numpy

    (2) import numpy as np(别名,自己定义) 

    (3)import numpy *(不推荐)

    动态导入:

    待补充

    展开全文
  • CMD 模块定义规范 讲解

    千次阅读 2014-01-09 10:39:47
    Sea.js ,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范。该规范明确了模块的基本书写格式和基本交互规则。 CMD 规范,一个模块就是一个文件。代码的书写格式如下: define...
  • ES6模块化(js模块定义和导出)

    千次阅读 2018-11-06 16:22:11
    ES6自带了模块化, 也是JS第一次支持module, es6以后 ,我们可以直接作用import和export浏览器导入和导出各个模块了, 一个js文件代表一个js模块; ES6的模块化的基本规则或特点: 1、每一个模块只加载一...
  • js里面,我们可以把模块定义为实现特定功能的一组方法,只要把实现某一功能的函数放一起,就可以看成是一个“模块”。 1. 模块的基础写法 // 例如: // 这是一个弹窗功能的一组方法 // 创建弹窗 function f.
  • 从 AngularJS 模块定义说起

    万次阅读 2016-03-15 21:32:53
    最近的项目使用了AngularJS作为主要前端框架,使用模块时遇到一些有意思的问题,本文围绕模块定义与加载的话题,小结一下我的体会。 首先,定义一个Angular模块(module)很简单,直接使用angular模块的module...
  • 发表于 Micropython开发:内部模块定义及扩展 Micropython需要支持导入模块,同时,设备驱动也要能够以python模块的形式工作,那么python解释必须实现这种接口。外部模块的定义位于$(tree)/extm
  • 本文主要摘抄自[CMD模块定义规范#242]和[require书写约定#259]。CMD规范,一个模块就是一个文件。可以看到这些规则并复杂,也很合理,并没有加重程序员的负担。虽然id、dependencies都是必须的,但是我们源码...
  • C语言声明和定义详解

    万次阅读 多人点赞 2016-02-06 16:56:05
    变量声明和变量定义 变量定义:用于为变量分配存储空间,还可为变量指定初始值。... extern声明不是定义:通过使用extern关键字声明变量名而不定义它。 [注意] 变量使用前就要被定义或者声
  • 如何定义类和创建对象

    千次阅读 2018-11-05 16:40:43
    类,定义了一个功能模块。 10-1 成员变量:描述对象的属性。 10-2 成员方法:描述对象的行为。 package bike; /* * 类定义对象创建 */ public class bike { String color="蓝色"; //bike所具有的...
  • 如何理解模块、组件和对象

    千次阅读 2018-01-15 15:42:15
    模块分离职责,从而达到分治! 达到复用! 组件跟模块区别不大,都是基于功能的划分。只是组件偏向于发行的概念,强调的是“跨项目的可重用性”这层意思。模块偏向于设计的概念,强调的是单个项目的“分离...
  • javascript模块系统

    千次阅读 2021-02-28 08:36:32
    很久以前,js只是简单的作为浏览器的交互操作而存在,一般都是非常短小的脚本,所以都是独立存在的。 但是随着现代浏览器的发展,特别是nodejs的出现,js可以做的事情变得...今天将会给大家介绍一下js模块系统。
  • Python 模块

    千次阅读 2016-09-11 00:18:12
    概述模块让你能够有逻辑地组织你的Python代码段。把相关的代码分配到一个 模块让你的代码更好用,更易懂。...一个叫做aname的模块里的Python代码一般都能在一个叫aname.py的文件找到。下例自定义一个简单的模块su
  • 一、面向对象程序设计(OOP)的三大基本特征(定义、特性、优缺点、java的表现形式、应用) 1.封装 封装的定义 ​ 通俗的说:普通人对计算机进行应用操作,只需知道如何计算机上连网,如何浏览网页,下载东西...
  • Python中定义Main函数

    万次阅读 多人点赞 2019-05-24 20:49:57
    许多编程语言都有一个特殊的函数,当操作系统...尽管如此,为程序的执行定义一个起始点有助于理解程序是如何运行的。Python程序员提出了几种方式对此进行实现。 本文结束时,您将了解以下内容: 什么是特殊的__n...
  • nodejs模块

    千次阅读 2019-06-07 20:14:23
    每个模块都是一个独立的作用域,这个而文件中定义的变量、函数、对象都是私有的,对其他文件可见。 node中模块分类 1 核心模块 由 node 本身提供,需要单独安装(npm),可直接引入使用 2 第三方...
  • 使用layui定义一个模块并使用的实例

    万次阅读 2018-01-19 18:32:51
    使用layui的过程,有几个方法需要被多个js引用,所以我按照文档,自定义了一个layui的模块,下面实现过程 先定义一个模块 //定义模块 layui.define(['form'], function(exports){ var form = layui.form; /...
  • javaScript 的AMD及define模块定义

    千次阅读 2016-06-29 18:56:52
     前端技术虽然不断发展之,却一直没有质的飞跃。除了已有的各大著名框架,比如Dojo,JQuery,ExtJs等等,很多公司也都有着自己的前端开发框架。这些框架的使用效率以及开发质量很大程度上都取决于开发者对其...
  • MATLAB Function 模块中使用全局数据

    千次阅读 2019-01-25 18:06:29
    全局共享数据何时需要使用全局数据?...您有一个使用了大量全局数据的现有模型,您要此模型添加一个 MATLAB Function 模块,但希望使用额外的输入和输出使模型变得混乱。您希望将数据可见性的作用域...
  • 21天学通JAVA:类的定义对象的创建

    千次阅读 2008-12-23 08:45:00
    类的定义对象的创建本文节选自《21天学通JAVA》一书 定义一个类表示定义了一个功能模块。下面先介绍如何定义一个类,以及如何创建这个类的实例,即对象。类是通过关键字class来定义的,class关键字后面加上类的...
  • perl模块(创建模块,加载模块详解)

    千次阅读 2017-02-22 18:38:27
    如何创建和加载perl模块,深入理解perl模块如何创建和加载perl模块深入理解perl模块 加载模块 1 编译阶段加载模块使用use 2 运行阶段加载模块使用require ... 传统模块定义子例程和变量,供调用者导入和使用。
  • OpenERP对象详细定义详细分析

    千次阅读 2013-04-10 21:58:20
    OpenERP对象详细定义详细分析   OpenERP的对象定义的一般形式如下。 程序代码: class name_of_the_object(osv.osv):  _name = 'xxx'  ...... name_of_the_object()   #Sample: class qingjd...
  • Python面向对象(学习笔记)

    万次阅读 多人点赞 2020-06-15 09:29:18
    文章目录一、面向过程与面向对象简述面向过程编程面向对象编程二、类和对象对象(实例)类和对象的关系三、类的定义四、类的成员类属性实例函数(对象函数,成员函数)实例函数和普通函数的区别关于self创建对象...
  • seajs学习(2)----CMD 模块定义规范

    万次阅读 2013-04-21 22:07:54
    Sea.js ,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范。该规范明确了模块的基本书写格式和基本交互规则。 CMD 规范,一个模块就是一个文件。代码的书写格式如下: ...
  • python模块 - copy模块

    万次阅读 2015-05-18 23:16:05
    copy模块用于对象的拷贝操作。该模块只提供了两个主要的方法:copy.copy与copy.deepcopy,分别表示浅复制与深复制。 直接赋值,深拷贝和浅拷贝的区别 直接赋值:简单地拷贝对象的引用,两个对象的id相同。就是对象...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 680,006
精华内容 272,002
关键字:

在对象模块中不能定义