闭包函数

作用域关系在函数定义阶段时就已经固定死了,与调用位置无关
即:在任意位置调用函数都需要跑到定义函数时寻找作用域关系

def f1():
    x=1
    def inner():
        print(x)
    return inner
func=f1()
def f2():
    x=111111
    func()

f2()


闭包函数:
闭指的是:该函数是一个内部函数
包指的是:指的是该函数包含对外部作用域(非全局作用域)名字的引用

def outter():
    x = 1
    def inner():
        print(x)
    return inner
f=outter()
def f2():
    x=1111111
    f()
f2()

def f3():
    x=4444444444444
    f()
f3()

为函数体传值的方式一:使用参数的形式
def inner(x):
    print(x)
inner(1)
inner(1)
inner(1)
为函数体传值的方式二:包给函数
'''
def outter(x):
    # x=1
    def inner():
        print(x)
    return inner
f=outter(1)
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.python.org')


import requests

def outter(url):
    # url='https://www.baidu.com'
    def get():
        response=requests.get(url)
        if response.status_code == 200:
            print(response.text)
    return get

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

baidu()
baidu()

python()
python()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值