python-闭包函数/生成器/迭代器/装饰器

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)

       
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值