Python中的函数入门二
目录
一、函数的说明文档:让你的函数 “会说话”
1. 什么是说明文档?
2. 如何定义说明文档?
二、函数的嵌套:函数内部的 “函数调用”
1. 什么是函数嵌套?
2. 嵌套函数的执行流程
三、变量的作用域
1. 作用域的分类
2. 全局变量的修改:global关键字
四、Python 拆包:快速获取集合中的数据
1. 什么是拆包?
2. 拆包的经典应用:交换变量
总结
在 Python 编程中,函数是代码复用和模块化的核心。除了基础的定义与调用,函数还有诸多进阶特性能让我们的代码更规范、高效。本文将聚焦函数的说明文档、嵌套调用、变量作用域及拆包技巧,带你进一步掌握函数的使用精髓。
一、函数的说明文档:让你的函数 “会说话”
当我们接手他人代码或回顾自己的旧代码时,如何快速理解一个函数的作用?注释虽能辅助,但需找到函数定义位置;而函数的说明文档则能更便捷地提供函数信息,这是 Python 中规范函数的重要方式。
1. 什么是说明文档?
函数的说明文档是写在函数内部的字符串,用于描述函数的功能、参数、返回值等信息。它无需查找函数定义,通过help()
函数即可快速查看,让函数的使用方式一目了然。
2. 如何定义说明文档?
在函数体的第一行使用三引号包裹描述内容即可。例如,我们封装一个生成指定长度验证码的函数,并添加说明文档:
import randomdef generate_code(num):"""generate_code方法用于生成指定长度的随机验证码参数:num:int类型,代表验证码的长度返回值:字符串类型,长度为num的随机验证码(包含数字、大小写字母)"""str1 = "0123456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"code = ""for i in range(num):index = random.randint(0, len(str1) - 1)code += str1[index]return code# 查看说明文档
help(generate_code)
运行help()
后,会清晰显示函数的功能、参数和返回值,让使用者无需阅读源码即可快速上手。
二、函数的嵌套:函数内部的 “函数调用”
函数并非孤立存在,在复杂逻辑中,我们常常需要在一个函数内部调用另一个函数,这就是函数的嵌套。
1. 什么是函数嵌套?
函数嵌套指的是 “一个函数内部调用另一个函数”。例如,函数funcA
执行过程中调用funcB
,funcB
执行完毕后返回funcA
继续执行。
2. 嵌套函数的执行流程
# 定义被嵌套的函数
def funcB():print("funcB函数执行中...")# 定义嵌套函数
def funcA():print("funcA函数开始执行")funcB() # 调用funcBprint("funcA函数执行结束")# 调用外层函数
funcA()
执行流程如下:
- 调用
funcA
,先执行print("funcA函数开始执行")
; - 遇到
funcB()
,进入funcB
执行print("funcB函数执行中...")
; funcB
执行完毕,返回funcA
,继续执行print("funcA函数执行结束")
。
三、变量的作用域
在函数中使用变量时,你是否遇到过 “变量未定义” 的错误?这往往与变量的作用域有关 —— 即变量的可用范围。
1. 作用域的分类
变量的作用域分为两类:
(1)全局作用域:函数外部定义的变量(全局变量),在整个程序中均可使用;
(2)局部作用域:函数内部定义的变量(局部变量),仅在函数内部有效,函数执行完毕后自动销毁。
# 全局变量
global_str = "我是全局变量"def func():# 局部变量local_num = 10print(global_str) # 可访问全局变量print(local_num) # 可访问局部变量func()
print(global_str) # 可访问全局变量
# print(local_num) # 报错:局部变量在函数外不可用
2. 全局变量的修改:global
关键字
默认情况下,局部作用域中无法修改全局变量。若需修改,需用global
关键字声明:
num = 10 # 全局变量def func():global num # 声明修改全局变量num = 20 # 修改全局变量func()
print(num) # 输出20(全局变量被修改)
若不使用global
,局部作用域中对num
的赋值会被视为定义一个新的局部变量,而非修改全局变量。
四、Python 拆包:快速获取集合中的数据
拆包是 Python 的特色技巧,它能将元组、字典等集合中的数据 “拆分” 并直接赋值给变量,让代码更简洁。
1. 什么是拆包?
拆包指将元组、列表或字典中的元素单独提取出来,赋值给多个变量的过程。例如,函数返回多值时,可通过拆包直接获取结果。
# 函数返回元组
def get_info():return "小明", 18, "北京"# 拆包获取值
name, age, address = get_info()
print(name) # 输出"小明"
print(age) # 输出18
print(address) # 输出"北京"
2. 拆包的经典应用:交换变量
在 Python 中,无需临时变量即可交换两个变量的值,这正是利用了拆包特性:
a = 10
b = 20# 拆包交换
a, b = b, a # 等价于 (b, a) 元组拆包为 a 和 bprint(a) # 输出20
print(b) # 输出10
原理是先将b和a
组成元组(b, a)
,再通过拆包赋值给a
和b
。
总结
函数是 Python 编程的基石,掌握说明文档能让函数更易维护,嵌套调用能实现复杂逻辑的模块化,理解作用域可避免变量使用错误,而拆包则能提升代码效率。这些技巧看似基础,却是写出规范、高效 Python 代码的关键。下一次编写函数时,不妨试试这些进阶特性,让你的代码更上一层楼!