news 2026/7/31 2:57:24

函数基础大全

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
函数基础大全

1 函数基础

1.1 什么是函数

函数可以理解为把一段重复要用的代码打包起来。以后想要执行这段功能,直接调用名字就行,不用反复复制粘贴代码,让代码更加整洁。

1.2 函数的定义与调用

使用def关键字定义函数,写完函数不会立刻运行,只有调用的时候才执行。

def hello(): print("大家好") # 调用函数 hello()

1.3 函数的返回值

return用来把函数内部的数据传递到外面。函数执行到 return 就会结束运行。如果不写 return,函数默认返回 None。

def add(x,y): return x+y res = add(2,3) print(res)

2 函数参数

2.1 位置参数

调用函数时,传入的数据会按照顺序一一对应,顺序不能随便调换。

def fun(a,b): print(a,b) fun(10,20)

2.2 默认参数

定义函数的时候,可以给参数提前设置好值。调用时不传这个参数,就自动使用默认值。

def fun(a,b=5): print(a+b) fun(10)

2.3 关键字参数

调用函数时,写明参数名字,不用严格遵守顺序。关键字参数要放在位置参数后面。

def fun(a,b): print(a,b) fun(b=1,a=2)

2.4 可变参数

  • *args:接收任意多个位置参数,最终保存成元组
  • **kwargs:接收任意多个关键字参数,最终保存成字典
def fun(*args,**kwargs): print(args) print(kwargs) fun(1,2,3,name="小明")

2.5 参数解包

如果我们有列表、元组、字典,可以使用***把里面的数据拆开,传给函数。

def fun(a,b): print(a,b) lst = [1,2] fun(*lst)

3 变量作用域

3.1 局部变量与全局变量

写在函数外面的变量是全局变量,整个程序都能访问。 写在函数内部的变量是局部变量,只能在这个函数里面使用,函数外面无法访问。

3.2 global 与 nonlocal

global:在函数内部修改全局变量。nonlocal:在内层函数中修改外层函数的变量,不作用于全局。

3.3 globals () 与 locals ()

globals()查看当前所有全局变量locals()查看当前作用域内所有局部变量

4 特殊函数

4.1 匿名函数

使用lambda快速创建简单函数,适合功能很短的代码,不需要写 def。

f = lambda x:x+1 print(f(5))

4.2 高阶函数

可以接收另一个函数作为参数,或者把函数当做返回值,这类函数就是高阶函数。

4.3 递归函数

函数自己调用自己,使用递归一定要设置结束条件,不然会无限循环报错。

def num(n): if n == 1: return 1 return n * num(n-1)

5 闭包与装饰器

5.1 闭包

内层函数使用外层函数的变量,并且外层函数返回内层函数,这样的组合就是闭包。闭包可以保存外层函数的变量状态。

5.2 装饰器

装饰器本质是高阶函数,可以在不修改原有函数代码的前提下,给函数增加新功能。

5.3 装饰器常用案例

日常可以用来实现运行时间统计、权限校验、日志记录等功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 2:57:01

.NET B/S 业务驾驶舱完整架构设计方案

.NET B/S业务驾驶舱完整架构设计方案一、方案概述1.1 项目背景随着企业数字化转型深入,传统分散的业务报表、静态数据统计模式已无法满足管理层实时监控、快速决策、风险预警的需求。业务驾驶舱作为企业数字化可视化核心载体,可整合多业务系统数据&#…

作者头像 李华
网站建设 2026/7/31 2:55:26

AI模型上下文窗口原理与工程实践指南

1. 上下文窗口:AI模型的"记忆容量"本质解析当你在与ChatGPT对话时突然收到"api error: the model has reached its context window limit"的提示,或是发现Kimi Chat在长文档处理时突然"失忆",这背后都是上下文…

作者头像 李华
网站建设 2026/7/31 2:54:07

Blender与Unreal Engine资产无缝迁移:BFU插件工作流全解析

1. 项目概述:为什么我们需要一个“无缝”的桥梁?如果你同时使用Blender和Unreal Engine,那你一定经历过这个痛苦循环:在Blender里精心雕琢了一个模型,调整了UV,绘制了精美的PBR材质,然后满怀期待…

作者头像 李华
网站建设 2026/7/31 2:54:02

从基础到实战:系统化提升工程师问题解决能力的三个关键阶段

1. 先搞清楚这个标题到底在说什么“论在成为神必雷霆男之前的塑造”这个标题,乍一看有点抽象,但拆开来看其实指向一个很具体的问题:一个人或一个角色在达到某种“巅峰状态”(神必雷霆男)之前,需要经历哪些关…

作者头像 李华
网站建设 2026/7/31 2:52:26

Python Pillow图像处理从入门到实战:系统教程与核心操作详解

1. 从“能打开图片”到“玩转图片”:为什么你需要一个系统的PIL教程如果你刚开始用Python处理图片,大概率会从网上搜到这样一段代码:from PIL import Image,然后img Image.open(photo.jpg),接着img.show()。屏幕一闪&…

作者头像 李华