使用装饰器:
@装饰器名字
def 函数名():
pass
总结函数
普通函数:
def 函数名([参数,…]):
函数体
1.如何定义函数
2.调用函数
参数
1.无参数:
def func():
pass
func()
2.有参数:
一般参数:
def func(a,b):
pass
func(1,2)
可变参数
def func(*args,**kwargs): args单个元素 kwargs 关键字参数
pass
func()
func(1)
func(a=10)
默认值:
def func(a=10,b=100):
pass
func()
func(100)
func(b=99)
返回值
return
没有返回值 None
def func():
print('-------')
x=func() --->x=None
有返回值:
def func():
return 'a'
x=func() ----->x='a'
嵌套函数—>闭包—>装饰器
def func():
def wrapper():
....
return wrapper
变量的作用域:LEGB
- L:local 本地 局部变量
- E:encloseing 嵌套
- G:Global 全局
- B:built-in 内置的
- global nonlocal
- globals() locals()
装饰器:
单层装饰器
def decorate(func):
def wrapper(*args,**kwargs):
....
return wrapper
@decorate
def house():
pass
@decorate
def f1(a,b):
pass
多层装饰器
@zhuang2
@zhuang1
def f1(a,b):
pass
装饰器带参数:
def outter(a):
def decorate(func):
def wrapper(*args,**kwargs):
....
@zhuang(10)
def house():
pass
@zhuang(100)
def street():
pass
匿名函数: lambda 参数: 返回值
递归函数:自己调用自己