函数进阶
Posted East-L
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数进阶相关的知识,希望对你有一定的参考价值。
1、命名空间
命名空间就是存放变量名和变量值关系记录的一块内存空间,
python中命名空间分为三种:全局命名空间、局部命名空间、内置命名空间。
三种命名空间的加载顺序:内置命名空间(程序运行前加载)->全局命名空间(程序运行中:从上到下加载)->局部命名空间(程序运行中:调用时才加载)
取值加载顺序:在局部调用:局部命名空间->全局命名空间->内置命名空间
在全局调用:全局命名空间->内置命名空间
2、作用域
作用域就是作用范围,按照生效范围可以分为全局作用域和局部作用域。
全局作用域:包含内置名称空间、全局名称空间、在整个文件的任意位置都能被引用、全局有效。
局部作用域:局部名称空间,只能在局部范围内生效。
这里要特别说一下内置的global和local方法在全局作用域和局部作用域中被调用的区别,
主要是local方法的不同,global方法被调用的结果都是显示程序中所有的变量或函数名,而local方法在局部作用域中被调用显示的 是局部的变量和函数名,在全局作用域中被调用显示的是全局的变量和函数名。
还有一个global关键字,它的作用是让局部变量可以在全局中被调用。
3、函数的嵌套和作用域链
函数嵌套就是在函数内部再定义函数,于此就产生了一个作用域链的概念即内部函数可以调用外层函数的变量。比如如下嵌套函数,它的结果是输出1。
def f1():
a = 1
def f2():
print(a)
f2()
f1()
4、函数名的本质
函数名在本质上就是函数的内存地址
它的作用和变量一样,可以被引用、作为函数的参数或返回值、作为容器类型的元素。
函数名也是第一类对象即可以在程序运行时创建、可以当作函数的参数或返回值、可以赋值给一个变量。
5、闭包
闭包指的是一种函数,一种被嵌套定义在另一个函数内部的函数并且调用了外层函数的变量。
闭包函数的作用是让外层函数被调用的变量可以长时间存放于内存当中,直到内部函数执行完毕才会被清除。
以上是关于函数进阶的主要内容,如果未能解决你的问题,请参考以下文章
我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段
我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段
我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段
我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段