zoukankan      html  css  js  c++  java
  • python基础一 day10(2)

    复习:
    # 三元运算符
    # 接收结果的变量 = 条件为真的结果 if 条件 else 条件为假的结果
    # 接收结果的变量 = “真结果” if 条件 else “假结果”
    #
    # 命名空间 和 作用域
    # 三种:内置 全局 局部
    # 作用域:全局 局部 globals() locals()
    # global 在局部声明一个全局变量
    # nonlocal 在局部声明最近的上一层局部中的变量
    # 作用域链 : 小范围用变量的时候,先从自己的名字空间找,
    # 找不到就一层一层向外层找,知道找到为止。
    # 找不到就报错。
    # 函数的嵌套调用和嵌套定义
    # 定义在函数内部的函数不能被外界直接调用
    # 内部函数可以使用外部的变量
    # 函数名的本质
    # 就是一串内存地址
    # 可以赋值、可以作为容器类型的元素、函数的参数和返回值 —— 第一类对象

    # 闭包 : 内部函数使用外部函数的变量
    def outer():
    a = 1
    def inner():
    print(a)
    return inner

    i = outer()
    i()


    装饰器:


    # 装饰器形成的过程 : 最简单的装饰器 有返回值的 有一个参数 万能参数
    # 装饰器的作用
    # 原则 :开放封闭原则
    # 语法糖 :@
    # 装饰器的固定模式

    #不懂技术


    import time
    # print(time.time()) # 获取当前时间
    # time.sleep(10) #让程序在执行到这个位置的时候停一会儿


    # def timmer(f): #装饰器函数
    # def inner():
    # start = time.time()
    # ret = f() #被装饰的函数
    # end = time.time()
    # print(end - start)
    # return ret
    # return inner
    #
    # @timmer #语法糖 @装饰器函数名
    # def func(): #被装饰的函数
    # time.sleep(0.01)
    # print('老板好同事好大家好')
    # return '新年好'
    # # func = timmer(func)
    # ret = func() #inner()
    # print(ret)
    # 装饰器的作用 —— 不想修改函数的调用方式 但是还想在原来的函数前后添加功能
    # timmer就是一个装饰器函数,只是对一个函数 有一些装饰作用

    # 原则: 开放封闭原则
    # 开放 : 对扩展是开放的
    # 封闭 : 对修改是封闭的

    # 封版

    # def outer():
    # def inner():
    # return 'inner'
    # inner()
    #
    # outer()

    #装饰带参数函数的装饰器
    # def timmer(f): #装饰器函数
    # def inner(*args,**kwargs):
    # #(1,2) /(1)
    # start = time.time()
    # ret = f(*args,**kwargs) #f(1,2) #被装饰的函数
    # end = time.time()
    # print(end - start)
    # return ret
    # return inner
    #
    # @timmer #语法糖 @装饰器函数名
    # def func(a,b): #被装饰的函数
    # time.sleep(0.01)
    # print('老板好同事好大家好',a,b)
    # return '新年好'
    #
    # @timmer #语法糖 @装饰器函数名
    # def func1(a): #被装饰的函数
    # time.sleep(0.01)
    # print('老板好同事好大家好',a)
    # return '新年好'
    # # func = timmer(func)
    # ret = func(1,2) #inner()
    # ret = func(1,b = 2) #inner()
    # print(ret)

    # def wrapper(f): #装饰器函数,f是被装饰的函数
    # def inner(*args,**kwargs):
    # '''在被装饰函数之前要做的事'''
    # ret = f(*args,**kwargs) #被装饰的函数
    # '''在被装饰函数之后要做的事'''
    # return ret
    # return inner
    #
    # @wrapper #语法糖 @装饰器函数名
    # def func(a,b): #被装饰的函数
    # time.sleep(0.01)
    # print('老板好同事好大家好',a,b)
    # return '新年好'

    # def wrapper():
    # def inner():
    # pass
    # return inner

    def wrapper(func): #qqxing
    def inner(*args,**kwargs):
    ret = func(*args,**kwargs) #被装饰的函数
    return ret
    return inner

    @wrapper #qqxing = wrapper(qqxing)
    def qqxing():
    print(123)

    ret = qqxing() #inner

    #
    # 讲解元旦作业 扩展装饰器

  • 相关阅读:
    linux 下面 opcache 拓展
    php中函数前加&符号的作用分解
    apache 设置404页面
    nginx 环境搭建使用之入门
    curl获取http请求的状态码
    js打开新的窗体不被浏览器阻止
    YII 框架使用之——创建应用
    Yii 框架创建自己的 web 应用
    PHP中CURL方法curl_setopt()函数的一些参数
    Linux的学习--使用PuTTY
  • 原文地址:https://www.cnblogs.com/wang-tan/p/11048563.html
Copyright © 2011-2022 走看看