• 闭包函数


    闭包函数=名称空间与作用域+函数嵌套+函数对象
    一:大前提:
    闭包函数=名称空间与作用域+函数嵌套+函数对象
    核心点:名字的查找关系是以函数定义阶段为准

    二:什么是闭包函数
    "闭"函数指的该函数是内嵌函数
    "包"函数指的该函数包含对外层函数作用域名字的引用(不是对全局作用域)

    闭包函数:名称空间与作用域的应用+函数嵌套
    闭包函数:函数对象

    三:为何要有闭包函数=》闭包函数的应用
    两种为函数体传参的方式
    方式一:直接把函数体需要的参数定义成形参
    方式二:曲线救国,定义成闭包函数

    案例
    # 闭包函数:名称空间与作用域的应用+函数嵌套
    # def f1():
    # x = 33333333333333333333
    # def f2():
    # print(x)
    # f2()
    #
    #
    # x=11111
    # def bar():
    # x=444444
    # f1()
    #
    # def foo():
    # x=2222
    # bar()
    #
    # foo()



    # 闭包函数:函数对象
    # def f1():
    # x = 33333333333333333333
    # def f2():
    # print('函数f2:',x)
    # return f2
    #
    # f=f1()
    # # print(f)
    #
    # # x=4444
    # # f()
    # def foo():
    # x=5555
    # f()
    #
    # foo()


    # 三:为何要有闭包函数=》闭包函数的应用
    # 两种为函数体传参的方式
    # 方式一:直接把函数体需要的参数定义成形参
    # def f2(x):
    # print(x)
    #
    # f2(1)
    # f2(2)
    # f2(3)

    # 方式二:
    # def f1(x): # x=3
    # x=3
    # def f2():
    # print(x)
    # return f2
    #
    # x=f1(3)
    # print(x)
    #
    # x()



    import requests

    # 传参的方案一:
    # def get(url):
    # response=requests.get(url)
    # print(len(response.text))
    #
    # get('https://www.baidu.com')
    # get('https://www.cnblogs.com/linhaifeng')
    # get('https://zhuanlan.zhihu.com/p/109056932')


    # 传参的方案二:
    def outter(url):
    # url='https://www.baidu.com'
    def get():
    response=requests.get(url)
    print(len(response.text))
    return get

    baidu=outter('https://www.baidu.com')
    baidu()

    cnblogs=outter('https://www.cnblogs.com/linhaifeng')
    cnblogs()

    zhihu=outter('https://zhuanlan.zhihu.com/p/109056932')
    zhihu()
  • 相关阅读:
    PostgreSQL缺省值
    PostgreSQL表的基本概念
    PostgreSQL调用函数
    4.2. PostgreSQL值表达式
    3.5. PostgreSQL继承
    3.4. PostgreSQL事务
    3.3. PostgreSQL外键
    3.2. PostgreSQL视图
    碰撞
    骨骼
  • 原文地址:https://www.cnblogs.com/h1227/p/12531475.html
Copyright © 2020-2023  润新知