美文网首页
Python 闭包函数说明

Python 闭包函数说明

作者: 肀肀 | 来源:发表于2019-12-10 08:36 被阅读0次

导读在 Python 中很多地方都会使用到闭包,那么究竟什么叫做闭包呢?

在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。

简而言之, 闭包的特点就是内部函数引用了外部函数中的变量。 在Python中,支持将函数当做对象使用,也就是可以将一个函数当做普通变量一样用作另一个函数的参数和返回值。拥有此类特性的语言,一般都支持闭包。

闭包中被内部函数引用的变量,不会因为外部函数结束而被释放掉,而是一直存在内存中,知道内部函数被调用结束。

闭包函数

闭:指的是定义在函数内部的函数

比如手机是闭包函数(内层函数),被手机包装盒 (外层函数) 包裹起来,

手机可以使用包装盒中的东西,内层函数可以引用外层函数的名字。

闭包函数是 函数嵌套、函数对象、名称空间与作用域 结合体。

基本形式:

def outer():

name ='egon'

def inner():

print('my name is %s' %name)

return inner

# print(outer())

f=outer()

f()

闭包的小应用:

#爬虫:模拟访问百度

import requests

def get(url):

response = requests.get(url)

if response.status_code == 200:

print(response.text)

get('https://www.baidu.com/')

get('https://www.baidu.com/')

get('https://www.baidu.com/') #问题:每次访问百度,都要调用一次,填一次地址

# 解决办法:用闭包函数

def outter():

url = 'https://www.baidu.com/' #问题:把地址定死了,

def get():

response = requests.get(url)

if response.status_code == 200:

print(response.text)

return get

baidu = outter() #baidu --->get

baidu()

# 改进:

def outter(url):

def get():

response = requests.get(url)

if response.status_code == 200:

print(response.text)

return get

baidu = outter('https://www.baidu.com/') #baidu --->get

taobao = outter('https://www.taobao.com/') #taobao --->get

baidu() #专门调百度

taobao() #专门调淘宝

原文来自:https://blog.csdn.net/weixin_45816565/article/details/103016981

本文地址:https://www.linuxprobe.com/?p=166022编辑:张雄,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/

相关文章

  • python函数之闭包

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

  • 2018-11-20

    python函数的闭包 闭包: 嵌套函数调用外部函数的变量 注意: 闭包必须是内部函数调用外部函数定义的变量,这其...

  • python之理解闭包和装饰器

    python之理解闭包和装饰器 1、闭包函数 1.1 python中函数都是对象 结果: 上面定义一个shut函数...

  • Python 闭包使用注意点

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

  • Python 闭包函数说明

    导读在 Python 中很多地方都会使用到闭包,那么究竟什么叫做闭包呢? 在一些语言中,在函数中可以(嵌套)定义另...

  • Python闭包与ObjC的block的区别与联系

    首先明确一下Python闭包和ObjC中block的定义在python中闭包是这么定义的——内层函数引用了外层函数...

  • Python中的闭包

    php对闭包的定义是匿名函数,我之前对python闭包的理解是:外部函数以内部函数作为返回值,称之为闭包!!!(错...

  • js面试知识点汇总

    1.什么是闭包?举例说明从作用域链谈闭包闭包就是能够读取其他函数内部变量的函数,闭包实现累加效果 function...

  • 专题复习八、闭包及js跨域

    何为闭包闭包解决的是函数外部访问函数内部变量的问题,举例说明:function xxx (){var user ...

  • Python 闭包与装饰器图解

    python万物皆对象! 闭包 闭包:两个函数的嵌套,外部函数返回内部函数的引用,外部函数一定有参数 def 外部...

网友评论

      本文标题:Python 闭包函数说明

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