python开发基础(三)装饰器

"""
装饰器本质就是函数,功能就是为其他的函数添加附加的功能

原则:
1, 不能修改被修饰函数的源代码
2, 不能修改被装饰函数的调用方法

知识储备
装饰器 = 高阶函数 + 函数嵌套 + 闭包
"""
import time
import pack_1


def func1(num):
    start_time = time.time()
    res = 0
    for i in num:
        time.sleep(0.01)
        res += i
    # stop_time = time.time()
    # print('运行时间为:%s ' % (stop_time - start_time))
    return res


# print(func1(range(10)))


# 测试函数

@pack_1.timer
def func_test(name, age):
    time.sleep(0.01)
    run = '这是func_test的return'
    return run, name, age


print(func_test('jack', 18))
print('-' * 50)


@pack_1.timer
def func_test1(name, age, gender):
    time.sleep(0.1)
    run = ('这是func_test1的返回值,', name, age, gender)
    return run


print(func_test1(name='jack', age='18', gender='man'))


def func_test2():
    print('1')
    pass


def func_test3():
    print('1')
    pass


def func_test4():
    print('1')
    pass


"""
高阶函数:
1, 高阶函数接受的参数是一个函数名
2, 高阶函数的返回值的一个函数名
满足任意一个条件称之为高阶函数
"""
# 第一种
#
#
# def foo():
#     time.sleep(1)
#     print('hello')
#
#
# def func(test):
#     start_time = time.time()
#     test()
#     stop_time = time.time()
#     print('运行时间为:%sS' % (stop_time - start_time))
#
#
# func(foo)
#

# 第二种
#
#
# def foo():
#     print('hello')
#
#
# def test(func):
#     return func
#
#
# foo = test(foo)
# foo()
#


def foo():
    time.sleep(1)
    print('hello')


# 函数嵌套
# 参数向上寻找
#
# def foo():
#     print('hello')
#
#     def test():
#         print('world')
#
#         def test1():
#             print('!')
#         test1()
#     test()
#
#
# foo()

 

posted @ 2021-05-31 15:44  关于段主任的一切  阅读(43)  评论(0编辑  收藏  举报