欢迎来到CILMY23的博客
本篇主题为: Python函数的黑魔法:递归,嵌套函数与装饰器
个人主页:CILMY23-CSDN博客
系列专栏:Python | C++ | C语言 | 数据结构与算法
感谢观看,支持的可以给个一键三连,点赞关注+收藏。
写在前头:
本期主要补充上篇未完成的内容,(点击链接跳转)其中包括参数传递中序列解包,递归函数和嵌套函数,以及python中重要的概念————装饰器 ,除此之外还会扩展一些python中的作用域概念
目录
一、参数传递的序列解包
参数传递的序列解包是指在函数调用时,将一个序列(如列表、元组等)进行解包,然后将解包后的内容作为参数传递给函数。这使得我们可以使用序列中的元素来作为函数的参数,而不必一个个地手动传递。
例如:
def func(x,y,z):
return x + y +z
print(func(*[1,2,3]))
print(func(*(5,9,8)))
我们在上一篇中说,* args是将接收的多个参数放在一个元组里,那 * 其实是将一个序列中的元素解包出来,分别传递给形参中的各个变量。那 ** 就是将字典的各个元素传递给形参中的多个变量。
例如:
# 定义函数2
def func2(name, age):
print(f"Name: {name}, Age: {age}")
# 创建人的字典
person = {'name': 'Alice', 'age': 25}
# 将字典通过**解包传递给函数2
func2(**person)
注意:字典中的"键---值"和形参在名称和个数必须一一对应
二、递归函数和嵌套函数
递归函数和嵌套函数,它们都是 Python 编程中非常重要的概念,接下来我们就详细看看吧
2.1 递归函数
如果一个函数在函数体中直接或间接调用自身,那么这个函数就被称为递归函数。简单来说,这个函数在调用的时候会调用自身,直到结束。<