欢迎访问宙启技术站
智能推送

Python中的命名空间与变量作用域解析

发布时间:2023-12-25 15:29:38

1. 命名空间(Namespace)是指变量名在程序中有效的范围。在Python中,命名空间是采用字典的形式来实现的。每个命名空间中的变量名都作为字典的键,对应的变量值作为字典的值。Python中有四种基本的命名空间,分别是内置命名空间、全局命名空间、局部命名空间和临时命名空间。

- 内置命名空间:包含了Python解释器预定义的一些函数和变量名,如print()、len()等。

- 全局命名空间:定义在模块级别的变量名,属于全局范围,在整个程序执行期间都有效。

- 局部命名空间:定义在函数或类中的变量名,只在函数或类内部有效。

- 临时命名空间:在执行函数时创建的命名空间,用于存储局部变量与函数参数。

### 例子:

# 全局命名空间
global_var = 10

def test_func():
    # 局部命名空间
    local_var = 20
    print(global_var)
    print(local_var)

test_func()

在上述例子中,global_var属于全局命名空间,可以在函数内部访问。local_var属于局部命名空间,只能在函数内部访问。当函数test_func()被调用时,会创建一个临时命名空间,用于存储函数参数和局部变量。

2. 变量作用域(Variable Scope)是指变量在程序中起作用的范围。变量作用域规定了变量可以访问的命名空间。在Python中,有三种基本的变量作用域,分别是全局作用域、局部作用域和内置作用域。

- 全局作用域:位于模块的顶层,可以在整个程序中访问。

- 局部作用域:位于函数或类的内部,只能在函数或类内部访问。

- 内置作用域:包含了Python解释器预定义的一些函数和变量名,如print()、len()等。

### 例子:

# 全局作用域
global_var = 100

def test_func():
    # 局部作用域
    local_var = 200
    print(local_var)
    print(global_var)
    
test_func()
print(global_var)

在上述例子中,global_var属于全局作用域,在函数内部可以访问。local_var属于局部作用域,只能在函数内部访问。当函数test_func()被调用时,会创建一个新的局部作用域,并在函数执行完毕后销毁。