python的四个作用域是什么? python的四个作用域是什么?

 2024-02-12 01:01:25  阅读 0

范围

范围是 a 的 a,其中 a 是 。 ” “这里的意思是到一个名字中去查找这个名字。

作用域是程序可以直接访问的命名空间主体的区域。

在程序中,如果直接访问一个变量,就会从内向外访问所有的作用域,直到找到为止,否则会报未定义的错误。

,程序变量并非在所有位置都可以访问,访问权限取决于为变量赋值的位置。

变量的作用域决定了程序的哪个部分可以访问特定的变量名。 范围有 4 种类型,即:

有四个范围:

L(Local):最内层包含局部变量,例如函数/方法内部。

E():包含非局部(non-local)和非全局(non-)变量。 例如,如果有两个嵌套函数,并且函数(或类)A包含函数B,那么对于B中的名称,A中的范围是。

G():当前脚本的最外层,如当前模块的全局变量。

B (Built-in): 包含内置变量/关键字等,最后搜索

规则顺序:L –> E –> G –> B。

如果本地没有找到,就会在本地查找(比如闭包)。 如果没有找到,就会全局搜索,然后再内置中搜索。

= 0 # 全局范围

def 外部():

= 1 # 在闭包函数之外的函数中

定义内部():

= 2 # 本地范围

内置作用域是通过一个标准模块named来实现的,但是变量名本身并不放在内置作用域中,所以必须导入这个文件才能使用它。 在.0中,您可以使用以下代码来查看预定义了哪些变量:

>>>

>>> 目录()

只有模块()、类(class)和函数(def,)会引入新的作用域。 其他代码块(如if/elif/else/、try/、for/while等)不会引入新的作用域。 范围,也就是说这些语句内定义的变量也可以从外部访问,如下代码所示:

如果属实:

msg =“我来自”

打印(消息)

在示例中,msg 变量是在 if 语句块中定义的,但仍然可以从外部访问它。

如果 msg 定义在函数中,则它是局部变量,不能从外部访问:

本博客源码地址:

麻烦您给个star,谢谢!

标签: 变量 作用 局部

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码