闭包

外层函数返回内层函数就是闭包
上一级无法访问下一级
函数里面的都叫做局部,函数外面都叫做全局

a = 1
def f():
    print(a)
    def f2():
        print('f2')
    return f2

a = f()
a()

全局变量会占据整个资源,整个程序执行完后才被释放,节约性能,空间被释放

  • 闭包:递归, 回调
    递归: 函数自身调用自身,更占内存,很少用,比如阶乘
    回调:一个函数当做一个参数传给另一个参数执行
def f(a):
    a()  # a() = f2()
def f2():
    print('123')

f(f2)  #a=f2函数体


def f(a,j):
    if j > 13:
        a()
def f2():
    print('122')

f(f2,40)

操作:

def xd(a,b):
    print(dict(zip(a,b)))
    def zd1():
        b = a.values()
        print(tuple(b))
    zd1()

p = {'name':'小绿','age': 20}
p1 = ('小花',30)
xd(p,p1)

print('-------------')
li = [1,2,3]
li1 = ('aa','vv','dd')
print(dict(zip(li,li1)))  #zip的用法
print('-------------')
#好的写法

def zd(*args, **kwargs):
    vs = dict(zip(kwargs, args))
    tp = tuple(kwargs.values())
    print(vs)
    print(tp)
    # return vs,tp

# f(1,2,3,name='aa',age=30,sex='F')
zd(1,2,3,name='aa',age=30,sex='F')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值