当前位置:首页 » 编程语言 » 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”的错误信息

热点内容
网络数据服务器是什么 发布:2025-02-07 01:23:42 浏览:473
多服务器ip白名单 发布:2025-02-07 01:23:41 浏览:372
优酷上传视频的格式 发布:2025-02-07 01:18:51 浏览:880
租虚拟服务器有什么用 发布:2025-02-07 01:17:55 浏览:4
视频脚本策划 发布:2025-02-07 01:15:37 浏览:566
外文免费数据库 发布:2025-02-07 01:12:26 浏览:194
第一滴血ftp 发布:2025-02-07 01:12:24 浏览:424
仿草料源码 发布:2025-02-07 01:08:31 浏览:532
python多线程map 发布:2025-02-07 01:04:37 浏览:463
python线程时间 发布:2025-02-07 01:04:26 浏览:793