Python 编程深入浅出:第 6 章238
## 变量作用域
在 Python 中,作用域决定了变量的生存期和可访问性。变量的作用域是由代码块(如函数、循环或类)定义的,变量只能在定义它的代码块内访问和使用。
局部变量
局部变量在函数或其他代码块内定义,仅在该代码块内可用。当代码块执行完毕,局部变量就会被销毁。
```python
def my_function():
x = 10 # 局部变量
my_function()
# 访问局部变量 x 会导致错误
```
全局变量
全局变量在函数或其他代码块之外定义,可以在整个程序中使用。全局变量通常用于存储在程序执行期间需要访问的持久数据。
```python
x = 10 # 全局变量
def my_function():
print(x) # 访问全局变量 x
```
局部变量和全局变量的冲突
当局部变量和全局变量具有相同名称时,局部变量将覆盖全局变量,并且在局部变量的作用域内,全局变量将不可访问。
```python
x = 10 # 全局变量
def my_function():
x = 20 # 局部变量,覆盖全局变量
print(x) # 打印局部变量 x
my_function()
# 打印 20,局部变量 x 覆盖了全局变量 x
```
## 函数
函数是一组可在程序中重用的代码块。函数允许我们对复杂或重复的任务进行模块化,从而提高代码的可读性和可维护性。
定义函数
```python
def my_function(arg1, arg2):
"""函数文档字符串"""
# 函数体
```
* my_function:函数名称
* arg1, arg2:函数参数
* """函数文档字符串""":函数文档字符串,描述函数的目的和用法
调用函数
```python
my_function(1, 2)
```
* my_function:要调用的函数名称
* 1, 2:传递给函数的参数
返回值
函数可以通过 `return` 语句返回一个值。如果函数没有显式返回一个值,它将返回 `None`。
```python
def my_function():
return 10
```
## 模块
模块是一组相关函数、类和变量,它们被组织在一个文件中。模块允许我们将代码组织成不同部分,并根据需要在不同的程序中重用它们。
创建模块
```python
#
def my_function():
# 函数体
```
导入模块
```python
import my_module
my_module.my_function() # 调用模块中的函数
```
* import my_module:导入名为 `my_module` 的模块
* my_module.my_function():调用模块中的 `my_function` 函数
模块的搜索路径
Python 在特定目录中搜索模块,称为 模块搜索路径。搜索路径包含当前工作目录、标准库目录以及任何其他已添加到搜索路径中的目录。
## 包
包是一组相关的模块,它们被组织在一个文件夹中。与模块类似,包允许我们将代码组织成更细粒度的部分。
创建包
```python
# my_package/
```
* :一个空文件,指示文件夹是一个包
* 和 :包中的模块
导入包
```python
import my_package # 导入包
my_package.my_module1.my_function() # 调用包中模块的函数
```
* import my_package:导入名为 `my_package` 的包
* my_package.my_module1.my_function():调用包中 `my_module1` 模块的 `my_function` 函数
包的搜索路径
Python 在特定的目录中搜索包,称为 包搜索路径。包搜索路径包含当前工作目录、标准库目录以及任何其他已添加到搜索路径中的目录。
2025-02-04
最新文章
8小时前
18小时前
19小时前
21小时前
21小时前
热门文章
01-10 17:00
01-10 14:16
01-06 17:29
01-03 15:31
12-03 05:01
PHP如何在浏览器中运行?深入解析前端后端协作原理
https://jb123.cn/jiaobenyuyan/73510.html
Perl脚本编程:驾驭文本数据与系统管理的瑞士军刀
https://jb123.cn/perl/73509.html
从录制到代码:Selenium IDE 导出 JavaScript 自动化脚本完全指南
https://jb123.cn/javascript/73508.html
Perl sprintf 大揭秘:格式化输出的瑞士军刀,让你的代码更优雅!
https://jb123.cn/perl/73507.html
【技术解密】JSP到底是不是服务端脚本语言?一篇彻底搞懂!
https://jb123.cn/jiaobenyuyan/73506.html
热门文章
Python 编程解密:从谜团到清晰
https://jb123.cn/python/24279.html
Python编程深圳:初学者入门指南
https://jb123.cn/python/24225.html
Python 编程终端:让开发者畅所欲为的指令中心
https://jb123.cn/python/22225.html
Python 编程专业指南:踏上编程之路的全面指南
https://jb123.cn/python/20671.html
Python 面向对象编程学习宝典,PDF 免费下载
https://jb123.cn/python/3929.html