首页 > 其他 > 详细

闭包(内部函数用了外部函数的数据)

时间:2017-09-13 16:39:44      阅读:232      评论:0      收藏:0      [点我收藏+]
闭包(内部函数用了外部函数的数据)



内部函数 引用了外部函数的变量, 内部的函数 就叫 闭包

技术分享
# def func():
#     name=‘egon‘
#     def inner():
#         print(name)
#     return inner
#     # print(inner.__closure__)   # 使用外部参数的个数 (<cell at 0x0000000000120C78: str object at 0x0000000001DCC110>,)  判断闭包
# inner=func()
#
# inner()   # 执行的时候只创建一次 节省空间
# inner()
# func()()  #每次执行都创建一次name
# func()()
技术分享

 

     闭包例子

技术分享
from urllib.request import urlopen

def get_url():
    url=r‘https://i.cnblogs.com/PostDone.aspx?postid=7452088&actiontip=%E4%BF%9D%E5%AD%98%E4%BF%AE%E6%94%B9%E6%88%90%E5%8A%9F‘

    # 可能有好多网页

    def inner():
        re=urlopen(url).read().decode(‘utf-8‘)
        print(re)
    return inner

    # 用闭包可以避免多次打开数据;

get_web_content=get_url()
get_web_content()
技术分享


装饰器 是 闭包(内置函数) 的一种应用
让变量不会容易改变,并且不会每次都会变量创建一次

闭包(内部函数用了外部函数的数据)

原文:http://www.cnblogs.com/hzqblog/p/7515700.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!