函数高级--教你拿下python函数

重在理解嗷,别去背

在作用域中去寻找相关的变量

函数的嵌套

函数在执行去寻找函数的时候

也是去执行我们在之前所定义的相关的规则的

优先是在自己的作用域中去寻找相关可以去关联的函数

没有的话就去上一级作用域中去寻找新的函数

当我们去执行某个函数的相关的调用的时候

我们要去确定的就是确定好这个函数的相关的作用域

定义的函数名和我们原本的函数名是有冲突的

函数嵌套:分析作用域内存处理过程

python代码就是从上到下的逐行是进行操作的

我们重要的是要去明白,当我们在创建这个函数的时候

我们这个作用域之间的关系之间的相关的调用

并要要明白这个之间关联的这个区域是否是创建了起来

这样的话

这个对于函数之间的分析就会变得比较 的清晰

三句话搞定作用域

1.优先是在自己的作用域中去寻找的,自己没有的就去上级作用域

2.在作用域中寻找值的时候,要确保此次值是什么

3.分析函数的执行,要确定函数的作用域(函数之间的嵌套)

闭包就是函数嵌套的提升版

闭包,简而言之就是将数据封装在一个包(区域之中),当我们使用的时候再去里面去取这个包

(其本质上就是基于这个函数的相关嵌套搞出来的一个特殊的嵌套)

闭包的应用场景

1.封装数据防止这个污染到全局

供其他的多个函数去进行调用

2.封装数据到一个包里面,使用时再去取

这样的话就会节省空间,这样的话使得我们就是会帮助我们提高了效率

python闭包案例

特定的相关的场景

多线程下载视频

在函数的内部维护了一个相关的作用域

python中的装饰器

类似于Java中的spring的注解

闭包和函数的嵌套

@函数名

def xxx():

         pass

pytho内部会自动的执行。函数名xxx,执行完了之后

就会将这个结果赋给xxx

xxx=函数名

基于python的@语法和函数的闭包

将函数赋值给一个新的函数(内层函数)

执行函数的时候,再将内层的函数中执行闭包的原函数

让不修改函数的调用的方式和函数的本身,添加函数原本的功能

python装饰器模块代码

def outer(origin):
    def inner(*args,**kwargs):
        # 执行前
        res=origin(*args,*kwargs)
        # 执行后
        return  res
    return inner

@outer
def func():
    pass

func()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值