Python语言基础:作用域.pptx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
作用域作用域作用域的查找顺序新作用域的引入目录Contents01作用域作用域作用域就是一个 Python 程序可以直接访问命名空间的正文区域。Python 中,变量的访问权限决定于这个变量是在哪里赋值的。变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是:L(Local):最内层,包含局部变量,比如一个函数/方法内部。E(Enclosing):包含了非局部(non-local)也非全局(non-global)的变量。比如两个嵌套函数,一个函数(或类) A 里面又包含了一个函数 B ,那么对于 B 中的名称来说 A 中的作用域就为 nonlocal。G(Global):当前脚本的最外层。B(Built-in): 包含了内建的变量/关键字等。02作用域的查找顺序作用域的查找顺序在一个 python 程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误。 规则顺序:?L -> E -> G -> B。在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内置中找。03新作用域的引入新作用 Python语言的基础之一是作用域,它是程序中定义变量的一个范围,决定了变量的可访问性。作用域决定了在程序的不同部分可以使用哪些变量名。理解作用域对于编写清晰、无误的代码至关重要。 1. **作用域(Scope)** - **局部作用域(Local, L)**:这是最内层的作用域,通常在函数或方法内部,只包含在此区域内定义的变量。这些变量在函数执行完毕后会被销毁。 - **包围作用域(Enclosing, E)**:当一个函数或类内部包含另一个函数时,外部函数对内部函数形成了包围作用域。内部函数可以访问外部函数的非局部变量,但在外部函数中不能直接访问内部函数的局部变量。 - **全局作用域(Global, G)**:这是整个脚本的最外层,全局变量在整个脚本的任何地方都可以被访问,除非被局部作用域覆盖。 - **内置作用域(Built-in, B)**:这是Python预先定义的一些特殊变量和关键字,如`len()`、`print()`等,它们始终可用,不受任何其他作用域影响。 2. **作用域的查找顺序(Name Resolution)** - 当Python尝试查找一个变量时,它会遵循LEGB规则:首先查找局部作用域(L),然后是包围作用域(E),接着是全局作用域(G),最后是内置作用域(B)。如果在所有这些作用域中都找不到变量,Python会抛出`NameError`。 3. **新作用域的引入** - 在Python中,只有特定的结构会创建新的作用域,包括: - 模块(Module):每个单独的`.py`文件被视为一个模块,拥有自己的全局作用域。 - 类(Class):类定义创建一个新的作用域,类中的变量在类的实例化中可见。 - 函数(def、lambda):每个函数都有自己的局部作用域。 - 相反,其他代码块如条件语句(if/elif/else)、异常处理(try/except)、循环(for/while)等并不会创建新的作用域。这意味着在这些语句内部定义的变量可以在其外部访问。 了解这些作用域规则有助于避免命名冲突和提高代码的可读性。在编写Python程序时,明智地管理作用域可以确保数据安全,减少潜在的错误,并提高代码的可维护性。记住,尽量避免在全局作用域中声明过多变量,以减少可能的混乱。同时,合理利用局部作用域可以限制变量的生命周期,使得代码更加模块化。对于那些需要跨多个函数共享的变量,可以考虑使用类的属性或全局变量,但需谨慎处理,以防止意外修改。
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- orwinagi2023-11-08资源很赞,希望多一些这类资源。
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 363
- 资源: 1万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)