Python函数
1. 函数和过程的区别就是函数有返回值,过程没有返回值。
2. 函数如果没有返回值,则默认返回None.
3. 函数返回多个值,则系统以元组的形式进行封装后返回一个元组
4. 函数遇见return就结束函数。
函数参数
1. 位置参数
特点:1.1 形参和实参位置必须对应; 1.2 形参和实参的数量必须相等。
2.关键字参数
特点:2.1 形参和实参位置可以不用对应; 2.2 形参和实参的数量必须相等。
3. 位置参数&关键字参数混搭
特点:3.1 位置参数必须在关键字参数左边
4. 默认参数
特点:4.1 默认参数可以不用传值,如传值则覆盖默认值
def testing(name,age,job): return name,age,job testing('jack',23,'enginer') # 位置参数 testing(name='jack',age=23,job='enginer') # 关键字参数 testing('jack',age=23,job='enginer') # 位置参数和关键字参数混搭 def demo(id=1): # 默认参数 print(id) demo() demo(23)
5. 参数组
*args 列表; **kwargs字典
def testing(*args): print(args) testing(1,2,3) # (1, 2, 3) testing([1,2,3]) #([1, 2, 3],) testing(*[1,2,3])# (1, 2, 3) # 参数组为*args的, 如果参数传入的是一个列表并且想要这个列表作为一个列表传入,则需要在这个列表参数前面加 *号 def demo(**kwargs): print(kwargs) demo(x=1,y=2) demo(**{'name':'jack'})
匿名函数
fun = lambda x:x[0] res=fun(['jack','rose']) print(res) """ 1.fun为匿名函数内存地址 2.x为匿名函数的形参 3.匿名函数默认有返回值 """
匿名函数不应有复杂的逻辑。
高阶函数
满足高阶函数的条件,函数的参数是一个函数名或返回值是一个函数名。 函数即变量。
闭包函数
函数装饰器
函数装饰器等于 高阶函数+函数嵌套+函数闭包
1. 基本实现
import time def method(): time.sleep(3) def timmer(func): def wrapper(): start_time=time.time() func() stop_time=time.time() print(stop_time-start_time) return wrapper # 函数装饰器的基本实现 method=timmer(method) method()
2. 使用@语法实现
import time def timmer(func): def wrapper(): start_time=time.time() func() stop_time=time.time() print(stop_time-start_time) return wrapper """ 1. 先执行@timmer, 并将method函数作为参数传入导 timmer函数里面作为参数 2. 执行timmer函数并返回wrapper函数 3. 执行 wrapper函数 """ @timmer def method(): time.sleep(3) method()
3. 带有返回值的函数装饰器
import time def timmer(func): def wrapper(): start_time=time.time() res=func() stop_time=time.time() print(stop_time-start_time) return res return wrapper @timmer def method(): time.sleep(3) return 'OVER' res=method() print(res)
4. 带有参数的函数装饰器
import time def timmer(func): def wrapper(*args): start_time=time.time() result = func(*args) stop_time=time.time() print(stop_time-start_time) return result return wrapper @timmer def method(name,age): print(name,age) time.sleep(3) return 123 res=method('JACK',23) print(res)