1.什么是闭包函数
一个函数的返回值是另外一个函数,返回的函数调用的父函数内部的其他变量,如果返回的函数再外部被执行,就产生了闭包
2.闭包函数的作用
作用:使函数外部能够调用函数内部定义的变量
3.闭包函数的优缺点
优点:内部函数和局部变量都可以在外部使用
缺点:闭包好事导致整个函数的内部环境被长久保存,占用内存
#形式一 局部变量在外部使用
name2="python3"
def fun1():
name='python'
def inner():
pirnt(name)
return inner
print(name2)
result=fun1()
print(type(result))
result()
""""形式2 内部函数可以通过外部访问""
def fun2():
name2="python2"
def inner()
print(name2)
def all():
return inner()
return all
result=fun2()
fun=result()
fun()
------------------生成器--------------------
一.什么是生成器
函数中包含 yield则叫做生成器
普通函数和生成器的区别
生成器返回迭代器的函数,生成器就是迭代器
执行规则:
生成器运行时,每次遇到yield函数会暂停并保存所有运行信息
遇到next时会继续执行
二.什么是迭代器
迭代器是访问结合元素的一种方式,迭代器只能往前不能往后
字符串,列表,元组都可以创造迭代器
迭代器的两个基本方法:iter() next()
list1=[1,2,3,4,5,6]
it=iter(list1)
print(next(it)) #1
print(next(it)) #2
for num in it:
print(num)
-------------装饰器-------------------
一.什么是python的装饰器
pyhon的装饰器(函数):装饰函数或者类。对函数或类进行功能扩展
标记符号:@函数名称
python装饰器:函数装饰器 和类装饰器
二.函数装饰器定义
def runTime(fun):
def wrapper(*args,**kwargs):
start_time=time.time()
fun(*args,**kwargs)
time.sleep(1)
end_time=time.time()
cost_time=end_time=start_time
print(f"执行{func.__name__}函数耗时{cost_time}秒")
return wrapper
@runTime
def welcome_vip():
print("welcome")
@runTime
def sum(a,b)
sum=0
sum=a+b
print(f'a,b之和是{sum}')
sum(1,2)
-----------------
@runTime等同于
welcome_vip=runTime(welcome_vip)