函数:
1、引用传递
2、可变参数、命名参数、万能参数
3、匿名函数(lambda)
4、闭包(有点难)
5、递归
6、偏函数
7、函数作为参数传递
8、函数调用全局变量
9、全局变量和局部变量
装饰器(函数的深层次使用)
1. 引用传递
引用传递,实质是在传递内存地址
2. 函数默认值
# 在python,可以为函数的参数给予默认值
# 一旦某个存在默认值,那么如果在调用的时候,
# 不传递这个参数,则按照默认值
# 减少调用时的繁杂操作
注意:在定义函数时,如果存在有默认值的参数,一定要写在没有默认值的参数后面,
否则在调用时,无法确定参数到底传给哪个参数。
3. 全局变量和局部变量
全局变量:就是定义在py文件中,能被任何函数、类能够正常访问的变量。
局部变量:定义在函数内部变量,叫做局部变量
注意:函数本身是对象,存储在堆中,但是函数的调用是在栈中调用,压栈
4. 参数问题
1、默认值参数(例如步长默认值为1)
2、可变参数
3、命名参数
4、万能参数
在Python中,函数是对象,函数中参数可以是任何类型
注意:所以说在Python中,函数的参数可以是函数
5. 匿名函数
lambda表达式
lambda:语言
def a():
print("hello world")
# lambda:print("hello world")
def add(x, y):
return x + y
# lambda x,y: x + y
优点:简化代码书写
缺点:降低了代码的可读性,增加代码的维护成本
1. 递归
递归的必要条件:
1、函数自身调用自身(容易形成死循环)
2、要有终止条件(死循环)(超出会发生栈溢出)