Python学习笔记--Python函数式编程10-5.装饰器

Python语言的高级特性

函数式编程(FunctionalProgramming)

  • 基于lambda演算的一种编程方式

    • 程序中只有函数
    • 函数可以作为参数,同样可以作为返回值
    • 纯函数式编程语言: LISP, Haskell
  • Python函数式编程只是借鉴函数式编程的一些特点,可以理解成一半函数式一半Python

  • 需要讲述
    • 高阶函数
    • 返回函数
    • 匿名函数
    • 装饰器
    • 偏函数

装饰器(Decrator)

  • 在不改动函数代码的基础上无限制扩展函数功能的一种机制,本质上讲,装饰器是一个返回函数的高阶函数
  • 装饰器的使用: 使用@语法, 即在每次要扩展到函数定义前使用@+函数名
# 任务:
# 对hello函数进行功能扩展,每次执行hello万打印当前时间

import time

# 高阶函数,以函数作为参数
def printTime(f):
    def wrapper(*args, **kwargs):
        print("Time: ", time.ctime())
        return f(*args, **kwargs)
    return wrapper
# 上面定义了装饰器,使用的时候需要用到@, 此符号是python的语法糖
@printTime
def hello():
    print("Hello world")
    
hello()
Time:  Thu Aug 30 23:08:21 2018
Hello world
# 装饰器的好处是,一点定义,则可以装饰任意函数
# 一旦被其装饰,则则把装饰器的功能直接添加到定义函数的功能上

@printTime
def hello2():
    print("今天很高兴,被老板揪着讲课了")
    print("还可以由很多的选择")

hello2()
Time: Thu Aug 30 23:13:21 2018
今天很高兴,被老板揪着讲课了
还可以由很多的选择

装饰器函数日后再细细研究

猜你喜欢

转载自blog.csdn.net/u013985879/article/details/82229288