当前位置: 首页 > news >正文

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执行过程中调用funcBfuncB执行完毕后返回funcA继续执行。

2. 嵌套函数的执行流程

# 定义被嵌套的函数
def funcB():print("funcB函数执行中...")# 定义嵌套函数
def funcA():print("funcA函数开始执行")funcB()  # 调用funcBprint("funcA函数执行结束")# 调用外层函数
funcA()

执行流程如下:

  1. 调用funcA,先执行print("funcA函数开始执行")
  2. 遇到funcB(),进入funcB执行print("funcB函数执行中...")
  3. 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

原理是先将ba组成元组(b, a),再通过拆包赋值给ab

总结

函数是 Python 编程的基石,掌握说明文档能让函数更易维护,嵌套调用能实现复杂逻辑的模块化,理解作用域可避免变量使用错误,而拆包则能提升代码效率。这些技巧看似基础,却是写出规范、高效 Python 代码的关键。下一次编写函数时,不妨试试这些进阶特性,让你的代码更上一层楼!

http://www.lryc.cn/news/621018.html

相关文章:

  • 小白做亚马逊广告,空烧成本不出单怎么办
  • 20道JavaScript进阶相关前端面试题及答案
  • DataHub IoT Gateway:工业现场设备与云端平台安全互联的高效解决方案
  • Git 中切换到指定 tag
  • 电子电路学习日记
  • 嵌入式Linux学习-编译内核源码
  • 17 ABP Framework 项目模板
  • 微信公众号推送文字消息与模板消息
  • ActionChains 鼠标操作笔记
  • 恐鬼症 单机+联机(Phasmophobia)免安装中文版
  • SQL181 第二快/慢用时之差大于试卷时长一半的试卷
  • 【昇腾】VirtualBox虚拟机下搭建Ubuntu 22.04环境给TF卡制卡报读写IO错误的问题处理_20250814
  • 自动化测试|持续集成Git使用详解
  • elasticsearch冷热数据读写分离!
  • 快速搭建python HTTP Server测试环境
  • gitlab的ci/cd变量如何批量添加
  • STL算法【常用的算数生成算法】
  • 分享10个ai生成ppt网站(附ai生成ppt入口)
  • 力扣top100(day03-02)--图论
  • 回流(Reflow)与重绘(Repaint):浏览器渲染性能优化核心
  • SpringMVC请求与响应
  • 【Linux】库制作与原理
  • PyTorch回忆(三)U-net
  • java 学习 贪心 + 若依 + 一些任务工作
  • FTP服务器搭建(Linux)
  • opencv:傅里叶变换有什么用?怎么写傅里叶变换?
  • 软件著作权产生与登记关键点
  • 从单机到分布式:用飞算JavaAI构建可扩展的TCP多人聊天系统
  • 算法基础 第3章 数据结构
  • 数学建模-非线性规划模型