赋值

python命名空间

有些话、适合烂在心里 提交于 2020-02-10 01:30:40
1. 命名空间,不仅仅在python中有,在多数解释性语言中都有这个概念。( 暂时不确定 是不是所有的语言里都有) php、xml、c++、java、c#...... 定义命名空间的意义 :避免标识符发生重名冲突; 命名空间的使用 : 解析器组织、重用代码; 2. python中的命名空间 python的命名空间被定义为四层: "LEGB" L:  local;   表示该标识符在一个函数定义中,而且 在这个函数里面没有再包含函数的定义。 E:  enclosing function;  表示在一个函数定义中,但这个函数里面还包含有函数的定义,其实L层和E层只是相对的。 G:  global;  是指一个模块的命名空间,也就是说在一个.py文件中定义的标识符,但不在一个函数中。 B:  builtin;   是指python解释器启动时就已经具有的命名空间,之所以叫builtin是因为在python解释器启动时会自动    载入__builtin__模块,这个模块中的list、str等内置函数的就处于B层的命名空间中。 python解释器每次解释python代码的时候会按照LEGB的顺序来查找表示符;标识符的结果呢会以第一个找到的为主。 3. 三条规则 第 一,赋值(包括显式赋值和隐式赋值)产生标识符,赋值的地点决定标识符所处的命名空间。 第二,函数定义(包括def和lambda

变量

允我心安 提交于 2020-02-09 23:09:34
变量:是在内存中申请一块空间用于存放数据。 (1)声明一个变量  var age; (2)变量赋值    age = 18; (3)变量的初始化  var age = 18; (4)更新变量    age = 20;   一个变量重新赋值后,它原有的值就会被覆盖,该变量将会以最后一次赋的值为准。 (5)声明多个变量  var myname = '张大熊',             age = 3,            sex = '男'; 声明变量中的特殊情况: (1)只声明,不赋值  var age;  console.log(age);  返回undefined (2)不声明,只赋值  age = 18;  console.log(age); 返回18 (3)不声明,不赋值  console.log(age);        报错 变量的命名规范: (1)由字母(A-Z,a-z)、数字(0-9)、下划线(_)、美元符号($)组成,如:usrAge, num01, _name; (2)严格区分大小写。 (3)不能以数字开头。 (4)不能是关键字,保留字。 (5)变量名必须有意义。 (6)遵守小驼峰命名法,首字母小写 后面单词首字母大写。 (7)尽量不使用name作为变量名,因为有的浏览器 name会有特殊含义。 来源: https://www.cnblogs.com/Alisa

Spring学习

99封情书 提交于 2020-02-09 19:48:24
Spring 最近两天回了长沙,待在租房不能出门,复习了一下Spring框架。在Spring框架中,最重要的就是控制反转IOC和面向切面AOP,说一下自己的理解吧,权当自己做了一些笔记。 控制反转IOC 在Spring中通过IOC容器,将对象之间的依赖交由Spring进行统一控制管理,实现程序之间的解耦,IOC包括依赖注入DI和依赖查找,最常被用到的就是依赖注入,是IOC的具体表现。 图片来源于黑马视频 依赖注入DI 实现依赖注入一共有三种注入方式,分别是构造函数注入,Setter注入,基于注解的注入;最常被用到的就是构造函数注入和Setter注入。其中,构造函数注入和Setter注入都在在XML配置,基于注解的注入是通过注解配置。 1, 构造函数注入 使用类中的构造函数,给成员变量赋值。其中,赋值的操作不是我们自己做的,而是通过配置 的方式,让 spring 框架来为我们注入。 涉及到的标签:constructor-arg 属性: index:指定参数在构造函数参数列表的索引位置; type:指定参数在构造函数中的数据类型; name:指定参数在构造函数中的名称(通过这个属性确定为谁赋值); value:它能赋的值是基本数据类型和 String 类型; ref:它能赋的值是其他 bean 类型(必须得是在配置文件中配置过的 bean); 2, Setter注入

208_emacs lisp变量赋值

旧时模样 提交于 2020-02-09 17:39:51
完整的common lisp的学习集合整理如下: https://github.com/GreyZhang/g_lisp 看emacs的配置的时候,反复看到一个函数setq。从代码意图上看,应该是给变量赋值的。查看相应的帮助如下: 简单 的一个小结:赋值功能,把后面的表达式赋值给前面的变量。应该可以实现多个变量的赋值。 做几个测试如下: 初次赋值成功。 表达式求职成功。 在执行这个之前,我先执行了第3行代码。 从这个结果看得出来,这个列表赋值是可以进行多组的。而且赋值有一个从前到后的顺序。 简单做这么一点总结,估计这些信息基本上可以让我继续往下学习其他的东西了。 其他的lisp相关的学习笔记汇总,可以参考如下链接: https://github.com/GreyZhang/g_lisp 来源: CSDN 作者: grey_csdn 链接: https://blog.csdn.net/grey_csdn/article/details/104221124

verilog HDL入门

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-09 17:17:28
verilog HDL入门 特点 类C语言 并行执行 硬件描述 设计流程 : 自顶向下 前提 :懂C语言和简单的数电知识 简单体验 语法很类似C语言,同时不难看出描述的是一个多路选择器 module muxtwo (out, a, b, s1); input a,b,s1; output out; reg out; always @(s1 or a or b) if(!s1) out = a; else out = b; endmodule 注意 没考虑时延问题 没有说明如果输入a或b是三态的(高阻时)输出应该是什么。 一 入门例子 例1. 多路选择器 描述一个多路选择器,控制信号sel,输入信号in0、in1, 输出信号out module mux(out, in0, in1, sel); parameter N=8; output[N:1] out; input[N:1] in0, in1; input sel; assign out=sel?in1:in0; endmodule 例2. 4位二进制加法计数器(带同步清0) 进位输出:当q为最大值(15)且cin=1时,cout=1;否则cout=0 module counter(q, cout, reset, cin, clk); parameter N=4; input reset, cin, clk; output

C++ 类和对象

一曲冷凌霜 提交于 2020-02-09 13:07:25
类和对象 OOP第二课 1 类的构成 1.1 从结构到类 1.2 类的构成 2 成员函数的声明 2.1 普通成员函数形式 2.2 将成员函数以内联函数的形式进行说明 3 对象的定义和使用 3.1 对象的定义 3.2 对象中成员的访问 3.3 类成员的访问属性 3.4 类中成员的访问方式 3.5 对象赋值语句 3.6 类的作用域 类(class)是面向对象程序设计的最基本的概念,是C++最强有力的特征,是进行封装和数据隐藏的工具,它将一个数据结构与一个操作集紧密地结合起来。类对象是类的实例,用类对象模拟现实世界中的事物比用数据对象更确切。 1. 类的构成 1.1 从结构到类 结构是C的一种自定义的数据类型,它把相关联的数据元素组成一个单独的统一体。 例2.1有关日期结构的例子 #include <iostream.h> struct Date { int year; int month; int day; }; int main() { Date date1; date1.year=2003; date1.month=8; date1.day=25; cout<<date1.year<<"."<<date1.month<<"." <<date1.day<<endl; return 0; } ⭐class与struct的比较 类是C++对C中结构的扩展。

java学习笔记(四)-运算符

喜夏-厌秋 提交于 2020-02-09 01:31:55
java学习笔记(四)-运算符 文章目录 java学习笔记(四)-运算符 运算符 赋值,算术和一元运算符 简单赋值运算符 算术运算符 一元运算符 相等,关系和条件运算符 等价和关系运算符 条件运算符 类型比较运算符instanceof(及判断对象是否继承于父类) 按位和移位运算符 运算符摘要 简单赋值运算符 算术运算符 一元运算符 等于和关系运算符 条件运算符 类型比较运算符 按位和移位运算符 问题与练习:运算符 问题 运算符 运算符 是特殊的符号,它们对一个,两个或三个 操作数 执行特定的 运算 ,然后返回结果。 在我们探索Java编程语言的运算符时,可能有助于您提前了解哪些运算符具有最高的优先级。下表中的运算符按优先顺序列出。运算符越靠近表格顶部,其优先级越高。具有较高优先级的运算符将在具有相对较低优先级的运算符之前进行评估。同一行上的运算符具有相同的优先级。当相同优先级的运算符出现在同一表达式中时,必须控制一个规则,然后首先评估哪个规则。除赋值运算符外,所有二进制运算符均从左向右求值;赋值运算符从右到左求值。 运算符名称 操作符 后缀 *expr*++ *expr*-- 一元 ++*expr* --*expr* +*expr* -*expr* ~ ! 乘除 * / % 加减 + - 按位移 << >> >>> 关系 < > <= >= instanceof 平等 == !=

python学习2

为君一笑 提交于 2020-02-08 23:44:21
代码的组织和缩进 Python 语言直接通过缩进来组织 代码块。“缩进”成为了 Python 语法强制的规定。缩进时,几个空格都是允许的,但是数目必须统一。我们通常采用“四个空格”表示一个缩进。 注释和行连接符 #:行注释 ’’’块注释’’’(3个单引号) \:行连接符 对象 Python 中,一切皆对象 。每个对象由:标识(identity)、类型(type)、value(值)组成。 变量位于:栈内存 对象位于:堆内存 删除变量和垃圾回收机制 可以通过 del 语句删除不在使用的变量。如: a=123 #定义变量时不用指明类型 del a #不能再使用a变量,需要重新定义 链式赋值 链式赋值用于同一个对象赋值给多个变量。 x=y=123相当于:x=123; y=123 系列解包赋值 系列数据赋值给对应相同个数的变量(个数必须保持一致) >>> a,b,c=4,5,6 相当于:a=4;b=5;c=6 【操作】使用系列解包赋值实现变量交换(不用使用中间变量:方便) >> a,b=1,2 >>> a,b=b,a >>> print(a,b) 2 1 " src="file:///C:/Temp/msohtmlclip1/01/clip_image005.png" v:shapes="文本框_x0020_2"> 常量 Python 不支持常量,即没有语法规则限制改变一个常量的值

scala声明变量

試著忘記壹切 提交于 2020-02-08 20:32:30
声明变量 我们将来每一天编写scala程序都会定义变量。那scala语言如何定义变量呢? 语法格式 Java变量定义 java int a = 0; 在scala中,可以使用val或者var来定义变量,语法格式如下: scala val/var 变量标识:变量类型 = 初始值 其中 val定义的是不可重新赋值的变量 var定义的是可重新赋值的变量 [!NOTE] scala中定义变量类型写在变量名后面 scala的语句最后不需要添加分号 在解释器中定义一个变量 示例:定义一个变量保存一个人的名字"tom" 步骤 打开scala解释器 定义一个字符串类型的变量用来保存名字 参考代码 scala scala> val name:String = "tom" name: String = tom Val和Var变量 示例 给名字变量进行重新赋值为Jim,观察其运行结果 参考代码 scala scala> name = "Jim" <console>:12: error: reassignment to val name = "Jim" 示例 使用var重新定义变量来保存名字"tom",并尝试重新赋值为Jim,观察其运行结果 参考代码 scala scala> var name:String = "tom" name: String = tom scala> name = "Jim"

Cracking Digital VLSI Verification Interview 第四章

元气小坏坏 提交于 2020-02-08 16:18:52
目录 Hardware Description Languages Verilog SystemVerilog 对Cracking Digital VLSI Verification Interview:Interview Success这本书的汉化,最新更新请关注微信公众号 摸鱼范式 Hardware Description Languages Verilog [159] verilog中的阻塞赋值和非阻塞赋值有什么区别? verilog支持阻塞与非阻塞两种赋值方式。使用阻塞赋值时,计算和赋值会立刻执行。因此但是顺序执行块中由多个阻塞赋值,他们会按照阻塞的方式顺序执行。如下所示。 always @(posedge clk) begin x = a|b; y = a&b; z = x|y; end 在这个例子中,所有赋值都采用的时阻塞赋值,执行时会立刻进行计算,然后完成赋值操作。因此在第三条语句中,会将前两条语句中更新后的x和y用于第三条语句的计算并赋值。 在非阻塞赋值中,所有的赋值都将在当前的仿真时刻的最后执行。首先对右侧的表达式进行计算,然后才对左侧进行赋值,因此在下面的例子中,三条语句都先进行右侧语句的计算,然后再一起对左侧进行赋值操作。结果就是,第三条语句所采用的x和y是一个旧值,并不是前两条语句在这个仿真时刻改变后的值。 always @(posedge clk)