作用域、闭包及函数式编程[Python]

作用域的类型及规则

       作用域分为四类:Local,Enclosing,Global,Built-in,遵循 L –> E –> G –>B 的规则查找。在python中,module,class,def fun,lambda会产生作用域,if else,while,for X in D,try exception,不会产生新的作用域。

       作用域下的变量分两种:1 字典和列表为一类(变量名指向地址),当变量为字典和列表时,变量在任何作用域下是可以修改的。2 其他变量为一类,此时不可以修改不同作用域的变量(如内部函数不可以修改外部函数变量,强行修改,编译器会提示警告,且修改不会起作用,但是会相当于定义了一个新的变量),若是强行修改,需要借助nonlocal或者global关键字进行修改。其中,nonlocal用于修改闭包的变量,global用于修改外部作用域的变量。值的留意的地方是,nonlocal和global是python3出现的特性。

闭包

        1 闭包修改外层函数的变量,需要使用nonlocal对变量进行声明 2 闭包的定义是,函数+函数定义时环境。即闭包会保存变量状态。

函数式编程

        函数式编程,指的是通过函数达到面向对象才能达成的目标

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值