一.闭包函数:

闭包函数:
闭:定义在函数内部的函数
包:内部的函数引用了外部函数作用域的名(变量名)
闭包也是一种传参方式

def outter(x,y):
    # x = 1
    # y = 2
    def my_max():
        if x > y:
            return x
        return y
    return my_max
res = outter(1,2)   # outter加()本身会得到一个返回值my_max,实参1和2相当于变量值传给了x和y两个变量名
print(res())

闭包函数,函数装饰器,语法糖

import requests  # 爬虫模块

#方式一 直接给函数传参
info1 =  'https://www.baidu.com'
info2 = '......'
def my_get(rul):
    resuit = requests.get(rul)
    if resuit.status_code == 200:
        print(len(resuit.text))
my_get(info1)
my_get(info2)
'.....'


#方式二 用闭包的方式给函数传参
def outter(func):
    # func =  'https://www.jd.com'
    def my_get(func):
        resuit = requests.get(func)
        if resuit.status_code == 200:
            print(len(resuit.text))
    return my_get
res_jd = outter( 'https://www.jd.com')  # res = my_get
res_jd()  # my_get()

二.装饰器:

装饰器
器:就是一个工具
装饰:给被装饰对象(函数)添加功能
开放封闭原则:
开放:对扩展开放
封闭:对修改封闭

装饰器(被调用对象)必须遵循的两大原则:
1.不改变装饰对象(被装饰函数)的源码
2.不改变被装饰对象的调用方式
 import time
print(time.time())
# 1562812014.731474 时间戳  当前时间距离1970-1-1 00:00:00相差的秒数
# 1970-1-1 00:00:00是Unix诞生元年


 time.sleep(3)  # 让cpu谁三秒   让你的程序暂停三秒
 print('FBI!')
time 模块

相关文章:

  • 2022-02-25
  • 2022-03-03
  • 2021-10-16
  • 2022-01-08
  • 2021-09-23
  • 2022-03-08
猜你喜欢
  • 2022-12-23
  • 2021-08-19
  • 2022-12-23
  • 2021-10-26
  • 2021-05-31
  • 2022-02-21
  • 2021-08-30
相关资源
相似解决方案