码迷,mamicode.com
首页 > 编程语言 > 详细

Python 装饰器

时间:2019-12-17 22:05:20      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:def   UNC   函数   over   check   wrap   name   rap   优化   

Python 装饰器,开放封闭原则

  1. 装饰器:装饰,装修,体验更加,增加功能

  2. 开放封闭原则: 开放:对代码的拓展开放

    ? 关闭:对源码的修改关闭

  3. 装饰器:完全遵循开放封闭原则

    在不改变原函数的代码以及调用方式下,为其增加新的功能

    装饰器 就是一个函数 :

# -*- coding: utf-8 -*-
import time


def login():
    time.sleep(1)
    print('123132')


def timecheck(func):
    def inner():
        oldtime = time.time()
        func()
        newtime = time.time()
        print((newtime-oldtime))
    return inner

login = timecheck(login)        #不改变源代码 不改变调用方式 新增 所消耗时间的输出

login()

? 4.python 对装饰器进行了优化,提出了语法糖的概念

# -*- coding: utf-8 -*-
import time
#timecheck装饰器
def timecheck(func):
    def inner():
        oldtime = time.time()
        func()
        newtime = time.time()
        print((newtime-oldtime))
    return inner

@timecheck      #timecheck装饰器
def login():
    time.sleep(1)
    print('123132')

login()
  1. 装饰器 添加参数,返回值:

    # -*- coding: utf-8 -*-
    import time
    #timecheck装饰器
    def timecheck(func):
        def inner(*args,**kwargs):
            oldtime = time.time()
            revar = func(*args,**kwargs)
            newtime = time.time()
            print((newtime-oldtime))
            return revar
        return inner
    
    @timecheck
    def login(name,date):
        time.sleep(1)
        print(f'welcome {name},{date}')
        return 'loginover'
    
    
    a = login('panda',6666)
    
    print(a)

标准装饰器:

#标准装饰器:
def wrapper(func):
    def inner(*args,**kwargs):
        #添加额外的功能
        re = func(*args,**kwargs)
        #添加额外的功能
        return re

@wrapper
def ...

Python 装饰器

标签:def   UNC   函数   over   check   wrap   name   rap   优化   

原文地址:https://www.cnblogs.com/pandaa/p/12057092.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!