美文网首页
python闭包详解

python闭包详解

作者: 阿飞666666 | 来源:发表于2020-03-01 23:00 被阅读0次

(一)了解python装饰器之前我们可以先了解什么闭包

闭包概念:在一个内部函数中,对外部作用域的变量进行引用,(并且一般外部函数的返回值为内部函数),那么内部函数就被认为是闭包。简单的来说就是如果在一个函数中,定义了另外一个函数,并且那个函数使用了外部函数的变量,且外面那个函数返回了里面那个函数的引用,那么称里面的那个函数为闭包。

例如:

def bibao(name):

print('haha')

def say_hello():

print("hello my name is %s" %name)

return say_hello

a = bibao("lufei")

a()

得出来的结果为:haha  hello my name is lufei

(二)利用python闭包知识进行加,减,乘,除计算

def calculator(option):

if option ==1:

def add(x,y):

return x+y

return add

elif option ==2:

def minus(x,y):

return x-y

return minus

elif option ==3:

def multiply(x,y):

return x*y

return multiply

elif option ==4:

def divide(x,y):

return x/y

return divide

else:

print("输入方式有误")

return None

add = calculator(1)

ret=add(2,5)

print(ret)

(三)Python中关键字global与nonlocal的区别

第一,两者的功能不同。global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错)

下面是python关键字global的例子

num=[1,2,3,4,5]

def add():

global num

num.append(6)

print(num)

add()

下面是python关键字nonlocal的例子

def bibao(name):

def say_hello():

nonlocal name

name +='ai'

        print("hello my name is %s" %name)

return say_hello

a = bibao('xiao')

a()

bibao('xiao12')()

相关文章

  • python闭包详解

    (一)了解python装饰器之前我们可以先了解什么闭包 闭包概念:在一个内部函数中,对外部作用域的变量进行引用,(...

  • python闭包学习

    参考文章 python闭包python闭包一步一步教你认识Python闭包深入浅出python闭包

  • python函数之闭包

    目录 python函数之闭包什么是闭包python中的namespace闭包的条件闭包的优点 python函数之闭...

  • js闭包问题

    javascript 闭包的概念,闭包的作用,闭包经典面试题详解(配图解) 函数作用域(闭包前置知识) 要彻底弄懂...

  • Python 闭包使用注意点

    1 Python 闭包 今天,聊下 python 的闭包。在函数编程中经常用到闭包。 闭包是什么,它是怎么产生的及...

  • 闭包

    一、闭包技术详解 1.1 什么是闭包? 闭包实际上是一种函数,所以闭包技术也是函数技术的一种;闭包能做的事情函数几...

  • 详解js闭包

    详解js闭包 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实...

  • python 装饰器、闭包详解

    一直不理解装饰器原理,在知乎上找到一篇详细的讲解文章,原文贴了上来。知乎装饰器原文链接 1. Python中一切皆...

  • JavaScript学习笔记(4) 闭包详解(Closure A

    《JavaScript学习笔记(4) 闭包详解(Closure Are Not Magic)》 ---- 写在开头...

  • 闭包详解

    面试中常常会被问到闭包,每个人对闭包的理解也不一定一样,你说出来他想听的就行。 当遇到一个函数嵌套到另一函数中,内...

网友评论

      本文标题:python闭包详解

      本文链接:https://www.haomeiwen.com/subject/uiylkhtx.html