Day12

Posted a352735549

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day12相关的知识,希望对你有一定的参考价值。

1、函数的有用信息

函数的执行时,*打散

函数的定义时,*聚合

def func1(*args): #args (1,2,3)
    print(666)
    return args
print(func1(*[1,2,3]))  # inner(3,5) 打散
def func1():
    """
    此函数是完成登陆的功能,参数分别是...作用。
    :return: 返回值是登陆成功与否(True,False)
    """
    print(666)
    # print(func1.__name__)
    # print(func1.__doc__)
    return True
func1()
print(func1.__name__)
print(func1.__doc__)
def wrapper(f):  # f = func1
    #@wraps(f)
    def inner(*args,**kwargs): #聚合
        #args (1,2,3)
        ‘‘‘执行函数之前的相关操作‘‘‘
        ret=f(*args,**kwargs)  # 打散 1,2,3
        ‘‘‘执行函数之后的相关操作‘‘‘
        return ret
    return inner
@wrapper
def func1():
    """
    此函数是完成登陆的功能,参数分别是...作用。
    :return: 返回值是登陆成功与否(True,False)
    """
    print(666)
    return True
func1()
print(func1.__name__)
print(func1.__doc__)

2、带参数的装饰器

import time
def timmer(*args,**kwargs):
    def wrapper(f):
        def inner(*args,**kwargs):
            if flag:
                start_time=time.time()
                ret = f(*args,**kwargs)
                time.sleep(111111111111111111)
                end_time=time.time()
                print(此函数的执行效率%f %(end_time-start_time))
            else:
                ret=f(*args,**kwargs)
        return inner
    return wrapper
flag = True
@timmer(flag,2,3)  # 两步:1,timmer(flag) --> wrapper 2,@wrapper 装饰器
def func1():
    print(666)
@timmer(flag)
def func2():
    print(777)
func1()
func2()
import time
flag = True
def wrapper(f):
    def inner(*args,**kwargs):
        if flag:
            start_time = time.time()
            ret = f(*args,**kwargs)
            time.sleep(0.3)
            end_time = time.time()
            print(此函数的执行效率%f % (end_time-start_time))
        else:
            ret = f(*args, **kwargs)
        return ret
    return inner

3、多个装饰器装饰一个函数

def wrapper1(func):  #func== f函数名
    def inner1():
        print(wrapper,before func)  #2
        func()
        print(wrapper1,after func)  #4
    return inner1
def wrapper2(func):  # func == inner1
    def inner2():
        print(wrapper2 ,before func)  # 1
        func()
        print(wrapper2 ,after func)  # 5
    return inner2
@wrapper2  #  f = wrapper2(f)  里面的f==inner1  外面的f == inner2
@wrapper1  # f = wrapper1(f)   里面的f==函数名f  外面的f == inner1
def f():  # 3
    print(in f)

f()  # inner2()

 

以上是关于Day12的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

12个用得着的 JQuery 代码片段

[code] PTA 胡凡算法笔记 DAY039

day12_框架一sendmail.py代码

day12_框架一report.py代码