网站开发与设计结课大作业汽车可以做哪些广告视频网站
news/
2025/9/22 21:34:24/
文章来源:
网站开发与设计结课大作业,汽车可以做哪些广告视频网站,泰安搭建公司,要看网的域名是多少一、命名空间概念1、命名空间(name space)名称空间是存放名字的地方。若变量x1#xff0c;1存放在内存中#xff0c;命名空间是存放名字x、x与1绑定关系的地方。2、名称空间加载顺序python test.py#1、python解释器先启动#xff0c;因而首先加载的是#xff1a;内置名称空…一、命名空间概念1、命名空间(name space)名称空间是存放名字的地方。若变量x11存放在内存中命名空间是存放名字x、x与1绑定关系的地方。2、名称空间加载顺序python test.py#1、python解释器先启动因而首先加载的是内置名称空间#2、执行test.py文件然后以文件为基础加载全局名称空间#3、在执行文件的过程中如果调用函数则临时产生局部名称空间3、名字的查找顺序局部名称空间——》全局名称空间——》内置名称空间需要注意的是在全局无法查看局部的在局部可以查看全局的如下例# max1def f1():# max2def f2():max3print(max)f2()f1()print(max)3max1def f1():# max2def f2():# max3print(max)f2()f1()print(max)11二、作用域python中一个函数就是一个作用域局部变量放置在其作用域中代码定义完成后作用域已经完成作用域链向上查找。类似C#、Java中作用域。不同变量的作用域不同就是由这个变量所在的命名空间决定的。1、作用域即范围全局范围(内置名称空间与全局名称空间属于该范围)全局存活全局有效局部范围(局部名称空间属于该范围)临时存活局部有效2、作用域关系是在函数定义阶段就已经固定的与函数的调用位置无关如下x1def f1():def f2():print(x)return f2x100def f3(func):x2func()x10000f3(f1())100003、查看作用域LEGB 代表名字查找顺序locals ——enclosing(相邻的上一级) ——globals —— __builtins__locals 是函数内的名字空间包括局部变量和形参enclosing 外部嵌套函数的名字空间globals 全局变量函数定义所在模块的名字空间builtins 内置模块的名字空间n 10def fun1():n 20print(func1,n)def fun2():n 30print(func2,n)def func3():print(func3,n) # locals没有先找相邻上一级作用域func3() # 30fun2() # 30fun1() # 20依次输出func1 20 func2 30 func3 30def func():level L1n 33print(locals())def outer():n 44level L2print(locals(), n)def inner():level L3print(locals(), n)inner() # {n: 44, level: L3} 44outer() # {n: 44, level: L2} 44func() # {n: 33, level: L1}输出如下结果{n: 33, level: L1}{level: L2, n: 44} 44{level: L3, n: 44} 44三、闭包函数内部函数包含对外部作用域而非全局作用域的引用。之前都是通过参数将外部的值传给函数闭包提供的思路是将参数包起来。1、什么是闭包闭包即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数)。而且这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时就会形成闭包。也就是说内部函数会在外部函数返回后被执行。而当这个内部函数执行时它仍然必需访问其外部函数的局部变量、参数以及其他内部函数。这些局部变量、参数和函数声明(最初时)的值是外部函数返回时的值但也会受到内部函数的影响。def func():n 10def func2():print(func2:,n) # 对外部作用域的引用return func2f func() # 拿到func2内存地址print(f) # func2内存地址.func2 at 0x101fb4620f() # 执行func2: 10在外部可以执行内部的函数并且可以使用内部函数作用域里的值这种现象就是闭包。在函数里面套了一层子函数在外层函数被执行的时候子函数被返回了返回的是内存地址在外面执行子函数的时候用引用了外层函数的变量相当于两者有一种扯不掉理还乱的关系。2、闭包的意义和应用闭包的意义返回的函数对象不仅仅是一个函数对象在该函数外还包裹了一层作用域这使得该函数无论在何处调用优先使用自己外层包裹的作用域。应用领域延迟计算(原来我们是传参现在是抱起来)、装饰器from urllib.request import urlopendef index(url):def get():return urlopen(url).read()return getbaidu index(http://www.baidu.com)print(baidu().decode(utf-8))四、函数嵌套返回值age 18def func1():age 73def func2():age 84print(age)return 666val func1()print(val)输出666函数可以当做返回值# 函数名可以当作返回值age 18def func1():age 73def func2():...return func2 # 返回一个函数名# val func1()print(val)输出.func2 at 0x101462598# 代码写完之后作用域已经生成不管函数名传到哪里只要执行都回回定义的地方往上找age 18def func1():age 73def func2():print(age)return func2 # 返回一个函数名不带括号val func1()val()输出结果73
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910448.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!