scope
时间: 2023-07-05 18:24:01 浏览: 45
在Python中,scope(作用域)指的是程序中变量所存在的区域。在Python中,变量的作用域分为两种:全局作用域和局部作用域。
全局作用域指的是在函数之外定义的变量,可以在整个程序中被访问。例如:
```python
global_var = "Hello, world!"
def print_global_var():
print(global_var)
print_global_var() # 输出"Hello, world!"
```
在上面的代码中,`global_var` 是在函数之外定义的,是一个全局变量。在 `print_global_var` 函数中可以访问到这个变量。
局部作用域指的是在函数内部定义的变量,只能在函数内部被访问。例如:
```python
def print_local_var():
local_var = "Hello, world!"
print(local_var)
print_local_var() # 输出"Hello, world!"
print(local_var) # 报错:NameError: name 'local_var' is not defined
```
在上面的代码中,`local_var` 是在 `print_local_var` 函数内部定义的,只能在函数内部访问。
需要注意的是,在Python中,如果在函数内部定义了一个与全局变量同名的变量,那么在函数内部访问该变量时,解释器会先在函数内部查找该变量,如果找到了则使用该变量,如果没有找到则使用全局变量。例如:
```python
global_var = "Hello, world!"
def print_global_var():
global_var = "Hello, Python!"
print(global_var)
print_global_var() # 输出"Hello, Python!"
print(global_var) # 输出"Hello, world!"
```
在上面的代码中,虽然存在全局变量 `global_var`,但是在 `print_global_var` 函数内部定义了一个同名的局部变量 `global_var`,因此在函数内部访问该变量时使用的是局部变量。而在函数外部访问 `global_var` 时,使用的是全局变量。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)