函数基础大全 📅 2026/7/31 2:57:27 1 函数基础1.1 什么是函数函数可以理解为把一段重复要用的代码打包起来。以后想要执行这段功能直接调用名字就行不用反复复制粘贴代码让代码更加整洁。1.2 函数的定义与调用使用def关键字定义函数写完函数不会立刻运行只有调用的时候才执行。def hello(): print(大家好) # 调用函数 hello()1.3 函数的返回值return用来把函数内部的数据传递到外面。函数执行到 return 就会结束运行。如果不写 return函数默认返回 None。def add(x,y): return xy res add(2,3) print(res)2 函数参数2.1 位置参数调用函数时传入的数据会按照顺序一一对应顺序不能随便调换。def fun(a,b): print(a,b) fun(10,20)2.2 默认参数定义函数的时候可以给参数提前设置好值。调用时不传这个参数就自动使用默认值。def fun(a,b5): print(ab) fun(10)2.3 关键字参数调用函数时写明参数名字不用严格遵守顺序。关键字参数要放在位置参数后面。def fun(a,b): print(a,b) fun(b1,a2)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 与 nonlocalglobal在函数内部修改全局变量。nonlocal在内层函数中修改外层函数的变量不作用于全局。3.3 globals () 与 locals ()globals()查看当前所有全局变量locals()查看当前作用域内所有局部变量4 特殊函数4.1 匿名函数使用lambda快速创建简单函数适合功能很短的代码不需要写 def。f lambda x:x1 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 装饰器常用案例日常可以用来实现运行时间统计、权限校验、日志记录等功能。