zoukankan      html  css  js  c++  java
  • 装饰器升级版

    # _*_ coding: utf-8 _*_

    # 如何取得home的返回值0000

    import time
    # 调用在python解释器中内置的time函数

    # 原函数 不能改变
    def original():
    print('Original function')
    time.sleep(1)


    # 原函数 不能改变
    def home(name):
    print('Welcome %s to home page' % name)
    time.sleep(1)
    return 8888
    # 返回单个值 就是值本身
    # print(home('oOC'))


    def external(original_func):
    # original_func = (old)home函数的内存地址
    def alter(*args, **kwargs):
    # *args, **kwargs 为了接收输入的任何类型的值
    start = time.time()
    res = original_func(*args, **kwargs)
    # original_func = (old)home(*args, **kwargs)
    # home有返回值是8888(返回单个值 就是值本身)
    # res = 函数运行的结果和返回值
    stop = time.time()

    print('Run time is %s' % (stop - start))
    return res
    # 返回 res的内存地址绑定了的值
    # res = original_func = (old)home(*args, **kwargs)
    # 可以理解为返回了 res的值

    return alter
    # 返回alter函数的内存地址
    # 返回整个alter 整个函数给了external
    # 返回alter 之后相当于把 external()和alter()单独取出来运行结果一样


    # original()
    # 输出Original function
    original= external(original)
    original()
    home = external(home)
    # external(original_func)-----> original_func = home函数的内存地址
    # (new)home = (original_func = (old)home函数的内存地址)
    res = home('oOC')
    # res = (new)home('oOC')= external(original_func = (old)home函数的内存地址)
    print(res)
  • 相关阅读:
    ServletConfig对象
    Servlet生命周期
    BeanListHandler
    表单校验
    SQL30081N 检测到通信错误。正在使用的通信协议:"TCP/IP"
    交货单寄售发货接口
    PI 7.4/7.5 Alert 配置
    SAP PI soap 方式 头部 传输 wsse:Security wsse:UsernameToken
    smartforms 打印参数 ( 预览 和 不预览直接打印 )设置
    migo增强中获取屏幕值的方法
  • 原文地址:https://www.cnblogs.com/OutOfControl/p/9714823.html
Copyright © 2011-2022 走看看