当前位置:首页 » 编程语言 » python27nonlocal

python27nonlocal

发布时间: 2023-08-03 12:11:54

python语言中命名空间的使用

如果一个命名声明为全局的,那么对它的所有引用和赋值会直接搜索包含这个模块全局命名的作用域。如果要重新绑定最里层作用域之外的变量,可以使用 nonlocal 语句;如果不声明为 nonlocal,这些变量将是只读的(对这样的变量赋值会在最里面的作用域创建一个新的局部变量,外部具有相同命名的那个变量不会改变)。
通常,局部作用域引用当前函数的命名。在函数之外,局部作用域与全局使用域引用同一命名空间:模块命名空间。类定义也是局部作用域中的另一个命名空间。
重要的是作用域决定于源程序的意义:一个定义于某模块中的函数的全局作用域是该模块的命名空间,而不是该函数的别名被定义或调用的位置,了解这一点非常重要。另一方面,命名的实际搜索过程是动态的,在运行时确定的——然而,Python 语言也在不断发展,以后有可能会成为静态的“编译”时确定,所以不要依赖动态解析!(事实上,局部变量已经是静态确定了。)
Python 的一个特别之处在于:如果没有使用 global 语法,其赋值操作总是在最里层的作用域。赋值不会复制数据,只是将命名绑定到对象。删除也是如此:del x 只是从局部作用域的命名空间中删除命名 x 。事实上,所有引入新命名的操作都作用于局部作用域。特别是 import 语句和函数定义将模块名或函数绑定于局部作用域(可以使用 global 语句将变量引入到全局作用域)。
global 语句用以指明某个特定的变量为全局作用域,并重新绑定它。nonlocal 语句用以指明某个特定的变量为封闭作用域,并重新绑定它。

② python语言保留字有哪些

保留字是Python语言中一些已经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量、函数、类、模板以及其他对象命名。

Python包含的保留字可以执行如下命令进行查看:

>>> import keyword

>>> keyword.kwlist

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

python保留字

需要注意的是,由于Python是严格区分大小写的,保留字也不例外。所以,我们可以说if是保留字,但IF就不是保留字。

在实际开发中,如果使用Python中的保留字作为标识符,则解释器会提示“invalid syntax”的错误信息

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:708
制作脚本网站 发布:2025-10-20 08:17:34 浏览:971
python中的init方法 发布:2025-10-20 08:17:33 浏览:680
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:832
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:739
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1079
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:310
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:190
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:877
python股票数据获取 发布:2025-10-20 07:39:44 浏览:834