变量作用域-qt教学大纲

时间:2024-06-23 19:46:32
【文件属性】:

文件名称:变量作用域-qt教学大纲

文件大小:5.26MB

文件格式:PDF

更新时间:2024-06-23 19:46:32

python 核心编程 中文版 高清文字版

11.8 变量作用域 标识符的作用域是定义为其声明在程序里的可应用范围, 或者即是我们所说的变量可见性。换 句话说,就好像在问你自己,你可以在程序里的哪些部分去访问一个制定的标识符。变量可以是局 部域或者全局域。 11.8.1 全局变量与局部变量 定义在函数内的变量有局部作用域,在一个模块中 高级别的变量有全局作用域。在编译器理 论里有名的“龙“书中,Aho, Sethi, 和 ULLman 以这种方法进行了总结。 “声明适用的程序的范围被称为了声明的作用域。在一个过程中,如果名字在过程的声明之内, 它的出现即为过程的局部变量;否则的话,出现即为非局部的“ 全局变量的一个特征是除非被删除掉,否则它们的存活到脚本运行结束,且对于所有的函数, 他们的值都是可以被访问的,然而局部变量,就像它们存放的栈,暂时地存在,仅仅只依赖于定义 它们的函数现阶段是否处于活动。当一个函数调用出现时,其局部变量就进入声明它们的作用域。 在那一刻,一个新的局部变量名为那个对象创建了,一旦函数完成,框架被释放,变量将会离开作 用域。 global_str = 'foo' def foo(): local_str = 'bar' return global_str + local_str 上面的例子中,global_str 是全局变量,而 local_str 是局部变量。foo()函数可以对全局和局 部变量进行访问,而代码的主体部分只能访问全局变量。 核心笔记:搜索标识符(aka 变量,名字,等等) 当搜索一个标识符的时候,python 先从局部作用域开始搜索。如果在局部作用域内没有找到那 个名字,那么就一定会在全局域找到这个变量否则就会被抛出 NameError 异常。 一个变量的作用域和它寄住的名字空间相关。我们会在 12 章正式介绍名字空间;对于现在只能 说子空间仅仅是将名字映射到对象的命名领域,现在使用的变量名字虚拟集合。作用域的概念和用 于找到变量的名字空间搜索顺序相关。当一个函数执行的时候,所有在局部命名空间的名字都在局 部作用域内。那就是当查找一个变量的时候,第一个被搜索的名字空间。如果没有在那找到变量的 话,那么就可能找到同名的全局变量。这些变量存储(搜索)在一个全局以及内建的名字空间,。 仅仅通过创建一个局部变量来“隐藏“或者覆盖一个全局变量是有可能的。回想一下,局部名


网友评论