局部变量

局部变量与全局变量

情到浓时终转凉″ 提交于 2019-11-27 00:53:33
顶格(没有缩进)写的就是全局变量 globa name 相当于将name定义为全局的 即后续的修改会修改了全局的 报错 书写规范 全局变量都大写 局部变量都小写 来源: https://www.cnblogs.com/wulinmiao/p/11337153.html

Java中的内存

房东的猫 提交于 2019-11-27 00:26:11
Java的内存需要划分为5个部分 1. 栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中。 局部变量:方法的参数,或者是方法{ }内部的变量。 作用域:一旦超出作用域,立即从栈内存当中消失。 2. 堆(Heap):凡是new出来的东西,都在堆内存当中 堆内存里面的东西都有一个地址值:16进制。 堆内存里面的数据,都有默认值,规则: | |默认值| |--- |---| |整数|0| |浮点数|0.0| |字符|'\u0000'| |布尔|false| |引用类型|null| 3. 方法区(Method Area):存储.class相关信息,包含方法的【死】信息。 4. 本地方法栈(Native Method Stack):与操作系统相关。 5. 寄存器(pc Register):与CPU相关。 来源: https://www.cnblogs.com/blog-S/p/11336527.html

Java基础第7天+成员变量和局部变量的区别、匿名对象、封装、private关键字、this关键字、构造方法、static关键字

感情迁移 提交于 2019-11-26 23:25:34
1: 成员变量和局部变量的区别 ( 理解 ) (1) 在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2) 在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3) 生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 (4) 初始化值不同 成员变量:有默认值 局部变量:没有默认值,必须定义,赋值,然后才能使用 注意事项: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。 2: 类作为形式参数的问题 ?( 理解 ) (1) 如果你看到一个方法需要的参数是一个类名,就应该知道这里实际需要的是一个具体的对象。 3: 匿名对象 ( 理解 ) (1) 没有名字的对象 (2) 应用场景 A: 调用方法,仅仅只调用一次的时候。 注意:调用多次的时候,不适合。 那么,这种匿名调用有什么好处吗 ? 有,匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。 b: 可以作为实际参数传递。 4: 封装 ( 理解 ) (1) 隐藏实现细节,提供公共的访问方式 (2) 好处: A: 隐藏实现细节,提供公共的访问方式 B: 提高代码的复用性 C: 提高代码的安全性 (3) 设计原则 把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式 (4)private 是封装的一种体现。

函数基础(二)

守給你的承諾、 提交于 2019-11-26 22:44:41
可变长参数 可变长参数:指的是在调用函数时,传入的参数个数可以不固定 调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接受溢出的位置实参(*)与关键字实参(**) 牢记 一、可变长形参之* 形参中的*会将溢出的位置实参全部接收,然后存储为元组的形式,然后把元组赋值给*后的参数。需要注意的是:*后的参数名约定俗成为args。 def func(name, pwd, *args): # *后可以跟其他参数,例如abc,但尽量不要使用,应该使用args,args是约定俗成的 print('name:', name, 'pwd:', pwd) print(args) # args会接收多余的位置实参,以元组形式存储 return 1 res = func('xiaowu', 123456, 18, 170, 140) print(res) # name: xiaowu pwd: 123456 # (18, 170, 140) # 1 二、可变长形参之** 形参中的**会将溢出的关键字实参全部接收,然后存储字典的形式,然后把字典赋值给**后的参数。需要注意的是:**后的参数名约定俗成为kwargs def func(name, pwd, **kwargs): # **后可以跟其他参数,但尽量不要使用,应该使用kwargs

MYSQL-5-存储过程

不想你离开。 提交于 2019-11-26 22:28:14
变量 全局变量前有@@字符,由系统定义和维护 select @@rowcount;--返回上一条语句执行的条数 select @@version;--返回当前SQL Server服务器的日期版本和处理器类型 局部变量前有@字符,由用户定义和维护 创建函数(了解) use school2; delimiter $$ create function fun_get_sage(str varchar(12)) returns char(12) begin return(select sage from student where sname=str); end; 调用: select fun_get_sage('李彤'); 存储过程 语句 if...then... else if...then... else... end if; label:while... do end while; label:loop end loop; case when...then... when...then... else... end case; 实例一 delimiter $$ create procedure pro_test2() begin select "ok"; end $$ call pro_test2(); 实例二 delimiter $$ create procedure pro

什么是闭包?

放肆的年华 提交于 2019-11-26 21:04:44
什么是闭包? 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 摘自 https://www.cnblogs.com/huanghuali/p/9851453.html 一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处, 就在于函数内部可以直接读取全局变量。 var n=999;   function f1(){     alert(n);   }   f1(); // 999 另一方面, 在函数外部自然无法读取函数内的局部变量。 function f1(){     var n=999;   }   alert(n); // error 这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量! function f1(){     n=999;   }   f1();   alert(n); // 999 二、如何从外部读取局部变量? 出于种种原因,我们有时候需要得到函数内的局部变量。但是,前面已经说过了,正常情况下,这是办不到的,只有通过变通方法才能实现。 那就是在函数的内部

函数进阶

我的梦境 提交于 2019-11-26 20:26:21
楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print(bigger) 之前是不是我告诉你们要把结果return回来你们就照做了?可是你们有没有想过,我们为什么要把结果返回?如果我们不返回m,直接在程序中打印,行不行? 来看结果: >>> def my_max(x,y): ... m = x if x>y else y ... >>> my_max(10,20) >>> print(m) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'm' is not defined 报错了!错误是“name 'm' is not defined”。变量m没有被定义。。。为啥?我明明定义了呀! 在这里我们首先回忆一下python代码运行的时候遇到函数是怎么做的。 从python解释器开始执行之后,就在内存中开辟了一个空间 每当遇到一个变量的时候,就把变量名和值之间的对应关系记录下来。 但是 当遇到函数定义的时候解释器只是象征性的将函数名读入内存 ,表示知道这个函数的存在了,至于函数内部的变量和逻辑解释器根本不关心。

可变长参数、函数对象、嵌套、名称空间和作用域

我的未来我决定 提交于 2019-11-26 17:55:01
目录 可变长参数、函数对象、嵌套、名称空间和作用域 一、可变长参数 1.1 可变长形参之* 1.2 可变长实参之* 1.3 可变长形参之** 1.4 可变长实参之** 二、函数对象 2.1、引用 2.2、当做实参参数传给一个形参参数 2.3、可以作为容器类数据类型中的元素 2.4 可以当做函数的返回值 三、函数的嵌套 3.1 函数的嵌套定义 3.2 函数的嵌套调用 四、名称空间和作用域 4.1 名称空间 4.1.1 内置名称空间 4.1.2 全局名称空间 4.1.3 局部名称空间 4.1.4 三种名称空间执行顺序 4.1.5 三种名称空间查找顺序 4.2 作用域 4.2.1 全局作用域 4.2.2 局部作用域 4.2.3 注意点 4.2.4 函数对象和作用域应用 4.3 补充知识点 4.3.1 global关键字 4.3.2 nonlocal关键字 4.3.3 注意点 来了,来了,它真的来了,超级台风利奇马已经来了,晚上正吃着可口的晚餐,吃完到外面风雨交加,整个人都凌乱了,不吐槽了,还是好好学习吧! 可变长参数、函数对象、嵌套、名称空间和作用域 一、可变长参数 1.1 可变长形参之* 用*接收溢出的位置实参,以元组的形式存储,然后复制给*后的参数,*后参数名固定为args def sum_self(*args): # 用*接收位置实参1,2,3,4,存储为元组(1,2,3,4)

内部类,接口,局部变量

余生颓废 提交于 2019-11-26 17:51:38
内部类,接口,局部变量 1.定义接口(interface)和实现接口(implement),接口不能实例化,实现多个接口。接口的修饰符号:final,static,public 1、接口方法不能包含有方法体,接口方法都是抽象方法(abstract) 2、接口方法默认都使用abstract进行修饰,可写可不写 2. final关键词:修饰变量,修饰方法,修饰类 自动类型转换(向上转型,向下转型) 3. 内部类:在内部类中,可以直接使用外部类的属性和方法 在内部类中,如果有变量与外部类的变量名称相同,优先使用内部类的变量 内部类可以直接在外部类中使用,用于完成特定的功能 4.静态内部类:静态内部类 - 以静态成员形式组成外部类 静态内部类是外部类的静态成员 静态内部类可以看成是一个外部类 静态内部类可以直接new,不需要通过外部类对象进行操作 5. 局部内部类: 局部内部类是编写在方法或代码块内部的类 局部内部类不能使用访问修饰符号,static 可以使用final和abstract修饰 在局部内部类中,访问局部变量是以final形式传递 不能在局部内部类中修改局部变量 局部内部类的使用 - 一般以匿名内部类的形式进行使用 来源: https://blog.csdn.net/weixin_41332878/article/details/98991757

day12

别来无恙 提交于 2019-11-26 17:42:45
可变长参数 # 形参 ## 位置形参 ## 默认形参 # 实参 ## 位置实参 ## 关键字实参 # 牢记 # 可变长参数之* def func(name, pwd, *args): # *abc会接收多余的位置实参,尽量不要使用abc,而应该使用args,args是约定俗称 print('name:', name, 'pwd:', pwd) print(args) # args就会接收多余的位置实参 return 1 # 可变长参数之** def func(name, pwd, **kwargs): print('name:', name, 'pwd:', pwd) print(kwargs) # kwargs会接收多余的关键字实参,以字典形式存储 return 1 res = func('nick', 123658, age=18, height=180) # 'age':18 print(res) # 可变长参数*和**联用 # 可变长参数之** def func(name, pwd, *args, **kwargs): print('name:', name, 'pwd:', pwd) print(args) print(kwargs) # kwargs会接收多余的关键字实参,以字典形式存储 return 1 res = func('nick', 123658, 1, 2,