作用域

名称空间和作用域

笑着哭i 提交于 2019-11-26 17:41:27
名称空间 定义:内存有一块内存存储变量名与变量间的绑定关系的空间,存放名字(变量名/函数名) 1.内置名称空间 内置名称空间是python解释器独有的,存放python解释器自带的名字,如int,float,len 当Python解释器启动的时候python自动开辟内置名称空间存放了这些python的内置方法,python解释器停止解释之后才会销毁. 2.全局名称空间 除了内置和局部的名字之外,其他都存储在全局名称空间 全局需要自己定义, python文件执行之后才可能有全局名称空间,文件结束之后才会销毁 3.局部名称空间 函数内定义的变量名/函数名都存放在局部名称空间 局部也需要自己定义, 必须得在函数调用之后才会生成, 调用结束之后就会销毁 执行顺序 三种名称空间的执行顺序:内置--->全局--->局部 查找顺序 当前的所在位置开始查找,如果当前所在的位置为局部名称空间,则查找顺序为:局部--->全局--->内置 作用域 产生作用的范围 x=1 def f1() x=3 print(x) #x=1和x=3的x不是同一个东西 全局作用域:全局+内置名称空间中的变量,全局作用域中的变量只能在全局中使用 局部作用域:局部名称空间中的变量,局部作用域中的变量只能在局部中使用 x = 1 def f1(): return x print(x) def f2(): x = 2 # x

名称空间及作用域

两盒软妹~` 提交于 2019-11-26 17:37:42
名称空间及作用域 一、名称空间 1.1内置名称空间 python解释器独有的 eg: len([1, 2, 3]) int('10') 函数调用必须得定义, 从来都没定义过. Python解释器启动的时候python自动开辟内置名称空间存放了这些python的内置方法,python解释器停止解释之后才会销毁 1.2全局名称空间 除了内置和局部,其他的都是全局 eg: z = 10 #全局名称空间 def f1(): x = 10 def f2(): y = 10 print('from f2') 全局需要自己定义, python文件执行之后才可能有全局名称空间,文件结束之后才会销毁 1.3局部名称空间 函数内定义的变量名/函数名都存放在局部名称空间 eg: z = 10 def f1(): x = 10 #局部名称空间 def f2(): y = 10 #局部名称空间 print('from f2') 局部也需要自己定义, 必须得在函数调用之后才会生成, 调用结束之后就会销毁 重点: 三种名称空间的执行顺序: 内置 --> 全局 --> 局部 三种名称空间的查找顺序: 首先从自己当前位置开始 --> 局部 --> 全局 --> 内置 eg: x = 1 #全局 def f1(): x = 3 #局部 f1() print(x) 二、作用域(产生作用的范围) eg: x = 1

2019.08.09学习整理

て烟熏妆下的殇ゞ 提交于 2019-11-26 17:35:37
2019.08.09学习整理 函数对象 函数是第一类对象,即函数可以被当做数据处理。 1.函数对象的四大功能 1.引用 x = 'hello nick' y = x f = func print(f) <function func at 0x10af72f28> 2.当作参数传给一个函数 len(x) def foo(m): m() foo(func) from func 3.可以当作函数的返回值 def foo(x): return x res = foo(func) print(res) res() <function func at 0x10af72f28> from func 4.可以当作容器类型的元素 l = [x] function_list = [func] function_list[0]() from func 函数嵌套 1.函数的嵌套定义 函数内部定义的函数,无法在函数外部使用内部定义的函数。 def f1(): def f2(): print('from f2') f2() f1() from f2 2.函数的嵌套调用 def max2(x, y): if x > y: return x else: return y def max4(a, b, c, d): res1 = max2(a, b) res2 = max2(res1, c) res3 = max2

函数基础

删除回忆录丶 提交于 2019-11-26 17:34:31
目录 1. 可变长参数 1.1 可变长参数之* 1.2 可变长参数之** 1.3 可变长参数*和**联用 1.4 了解 2. 函数对象 2.1 函数对象的四大功能 2.1.1 引用 2.1.2 可以当作容器类型的元素 2.1.3 当作参数传给一个函数 2.1.4 可以当作函数的返回值 3. 函数的嵌套 4. 名称空间和作用域 4.1 名称空间 4.1.1 内置名称空间 4.1.2 全局名称空间 4.1.3 局部名称空间 4.2 三种名称空间的执行顺序 4.3 三种名称空间的查找顺序 4.4 作用域 4.4.1 全局作用域 4.4.2 局部作用域 4.4.3 global 和 nonlocal 4.4.4 建议使用 1. 可变长参数 可变长参数:指的是在调用函数时,传入的参数个数可以不固定 调用函数时,传值的方式分为两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接收溢出的位置实参(*)与关键字实参(**) 1.1 可变长参数之* # def func(name,pwd,*abc): # *abc会接受多余的位置实参,尽量不要使用abc,而应带使用args,args是约定俗成的 def func(name,pwd,*args): print('name:',name,'pwd:',pwd) print(args) return 1 res =

day12

旧时模样 提交于 2019-11-26 17:30:35
可变长参数:指的是在调用函数时,传入的参数个数可以不固定 调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接收溢出的位置实参(*)与关键字实参(**) 一、可变长形参之* 形参中的*会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给*后的参数。需要注意的是:*后的参数名约定俗成为args。 def sum_self(*args): res = 0 for num in args: res += num return res res = sum_self(1, 2, 3, 4) print(res) 10 二、可变长实参之* 实参中的*,*会将*后参数的值循环取出,打散成位置实参。以后但凡碰到实参中带*的,它就是位置实参,应该马上打散成位置实参去看。 def func(x, y, z, *args): print(x, y, z, args) func(1, *(1, 2), 3, 4) 1 1 2 (3, 4) 三、可变长形参之** 形参中的**会将溢出的关键字实参全部接收,然后存储字典的形式,然后把字典赋值给**后的参数。需要注意的是:**后的参数名约定俗成为kwargs。 def func(**kwargw): print(kwargw) func(a=5) {'a': 5} 四、可变长实参之**

python-day12(正式学习)

▼魔方 西西 提交于 2019-11-26 17:29:08
目录 可变长参数 可变长形参之* 可变长实参之* 可变长形参之** 可变长实参之** 可变长参数应用 命名关键字形参 函数对象 四大功能 引用 当作参数传给一个函数 可以当作函数的返回值 可以当作容器类型的元素 函数的嵌套 函数的嵌套定义 函数的嵌套调用 名称空间和作用域 名称空间 内置名称空间 全局名称空间 局部名称空间 加载顺序 查找顺序 作用域 全局作用域 局部作用域 注意点 函数对象+作用域应用 补充 global关键字 nonlocal关键字 可变长参数 可变长形参之* 形参中的 会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给 后的参数。需要注意的是:*后的参数名约定俗成为args。 def sum_self(*args): res = 0 for num in args: res += num return res res = sum_self(1, 2, 3, 4) print(res) 10 可变长实参之* 实参中的 , 会将 后参数的值循环取出,打散成位置实参。以后但凡碰到实参中带 的,它就是位置实参,应该马上打散成位置实参去看。 def func(x, y, z, *args): print(x, y, z, args) func(1, *(1, 2), 3, 4) 1 1 2 (3, 4) 可变长形参之** 形参中的

2019 08 09 函数扩展

前提是你 提交于 2019-11-26 17:26:51
可变长参数 可变长参数:指的是在调用函数时,传入的参数个数可以不固定 调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接收溢出的位置实参(*)与关键字实参(**) 一、可变长形参之* 形参中的 会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给 后的参数。需要注意的是:*后的参数名约定俗成为args。 def sum_self(*args): res = 0 for num in args: res += num return res res = sum_self(1, 2, 3, 4) print(res) 10 二、可变长实参之* 实参中的 , 会将 后参数的值循环取出,打散成位置实参。以后但凡碰到实参中带 的,它就是位置实参,应该马上打散成位置实参去看。 def func(x, y, z, *args): print(x, y, z, args) func(1, *(1, 2), 3, 4) 1 1 2 (3, 4) 三、可变长形参之* * 形参中的 会将溢出的关键字实参全部接收,然后存储字典的形式,然后把字典赋值给 后的参数。需要注意的是:**后的参数名约定俗成为kwargs。 def func(**kwargw): print(kwargw) func(a=5) {'a': 5} 四、可变长实参之

JSP的三大指令、四大作用域、六大标签、九大内置对象

断了今生、忘了曾经 提交于 2019-11-26 17:11:27
JSP(Java Server Page) jsp本质就是一个servlet 将 Java 与 HTML 相结合 Jsp执行过程 客户端发出Request (请求); JSP Container 将JSP 转译成Servlet 的源代码; 将产生的Servlet 的源代码经过编译后,并加载到内存执行; 进入Servlet的执行过程; jsp基本元素: 注释元素 模板元素 指令元素 脚本元素 (九大内建对象) 动作元素 jsp的注释: Jsp文件中包含四种注释: 客户端显示的注释 :<!– 注释内容 --> <%-- comment --%> //JSP编译器会忽略 <% /** 多行注释 **/ %> //查看.java文件可以看到 <% //单行注释 %> //查看.java文件可以看到 三大指令 三种指令: page指令:设置jsp页面属性,导入包、设定字符集、设定错误页面、设定MIME类型和字符编码。 include指令:包含其他页面使用,插入多个外部文件(JSP、HTML、Java程序、文本) taglib指令:引用jsp标签库使用,用来指明JSP页面内使用的JSP标签库,taglib指令有两个属性,uri为类库的地址,prefix为标签的前缀 <%@ page language="java" contentType="text/html; charset=utf-8"

块级作用域

不问归期 提交于 2019-11-26 16:08:40
重复定义会报错 if(true){ let a = 1; let a = 2; } 输出: Uncaught SyntaxError: Identifier 'a' has already been declared 嵌套循环不会相互影响 for (let i = 0; i < 3; i++) { console.log("out", i); for (let i = 0; i < 2; i++) { console.log("in", i); } } 结果 out 0 in 0 in 1 out 1 in 0 in 1 out 2 in 0 in 1 实现块级作用域 if(true){ let name = '123'; } console.log(name); 不存在变量提示 console.log('inner',i); let i = 100; 输出; Uncaught ReferenceError: Cannot access 'i' before initialization 来源: https://www.cnblogs.com/guangzhou11/p/11325778.html

作用域变量 var

懵懂的女人 提交于 2019-11-26 16:04:55
var没有块级作用域,定义后在当前闭包中都可以访问,如果变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人更改。 变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人更改: console.log(a); function a() { console.log(1) } function a() { console.log(2) } 输出 : 2 定义后在当前闭包中都可以访问 if (true) { var a = "a"; // 期望a是某一个值 } console.log(a); 输出: a var在for循环标记变量共享,一般在循环中使用的i会被共享,其本质上也是由于没有块级作用域造成的 for (var i = 0; i < 10; i++) { setTimeout(function () { alert(i); }, 0); } 弹窗 10 次 来源: https://www.cnblogs.com/guangzhou11/p/11325573.html