zoukankan      html  css  js  c++  java
  • python基础十之装饰器

      1,装饰器的形成

        编程原则:开放封闭原则。

        开放:对扩展是开放的

        封闭:对修改是封闭的

      因为修改是封闭的,所以为了对函数进行功能的扩展,就使用装饰器!

      2,装饰器的定义

    # wrapper就是一个装饰器函数,就是对一个函数有一些装饰效果
    def wrapper(f):   # 装饰器函数,f是被装饰的函数
        def inner(*args, **kwargs):
            # 在被装饰函数之前想增加的功能
            ret = f(*args, **kwargs)     # 被装饰的函数
            # 在被装饰函数之后想增加的功能
            return ret   # 接收被装饰函数的返回值
        return inner
    # 装饰器的作用:不修改函数的调用方式,且能在函数的前后添加功能

      3,装饰器的使用

    @wrapper    # 语法糖 @装饰器函数名 相当于func = time_count(func)
    def func():    # 被装饰的函数
        time.sleep(1)
        print('zxc')
        return 'hahaha'
    ret = func()  # zxc
    print(ret)    # hahaha

      4,装饰器实例

    import time
    # 计算函数运行时间
    def wrapper(f):   # 装饰器函数,f是被装饰的函数
        def inner(*args, **kwargs):
            start = time.time()
            ret = f(*args, **kwargs)     # 被装饰的函数
            end = time.time()
            print(end-start)
            return ret   # 接收被装饰函数的返回值
        return inner
    
    @wrapper
    def func():    # 被装饰的函数
        print('zxc')
    func()  # 打印zxc 打印函数hunc的运行时间
  • 相关阅读:
    POJ 1887 Testing the CATCHER
    HDU 3374 String Problem
    HDU 2609 How many
    POJ 1509 Glass Beads
    POJ 1458 Common Subsequence
    POJ 1159 Palindrome
    POJ 1056 IMMEDIATE DECODABILITY
    POJ 3080 Blue Jeans
    POJ 1200 Crazy Search
    软件体系结构的艺术阅读笔记1
  • 原文地址:https://www.cnblogs.com/zxc-Weblog/p/8135061.html
Copyright © 2011-2022 走看看