python装饰器带参数函数_Python装饰器的原理及带多个参数

本文介绍了Python装饰器的概念,它是一种设计模式,常用于日志记录、性能测试和事务处理等场景。装饰器允许在不修改原有函数代码的情况下,为其添加额外功能。文中提供了一个简单的装饰器示例,展示了如何定义和使用装饰器来包围原函数,添加前置和后置操作。通过装饰器,开发者可以有效地复用代码,保持函数的简洁性,尤其在需要为多个函数添加相同功能时,如参数合法性检查。
摘要由CSDN通过智能技术生成

Python的装饰器是个什么东西呢?个人的理解,装饰器相当于一个嵌套函数,因为函数名只是一个指向函数内存地址的变量,所以可以将函数名传给另一个函数,然后返回一个新的函数名,新的函数中,执行原来函数,获取返回值,并添加新内容,就是Python的装饰器了。以下就是本人写的一个小的装饰器的例子:#!/usr/bin/env python

# coding:utf-8

def outer(func):

def inner(*args, **kwargs):

print("装饰器前面输出")

c = func(*args, **kwargs)

print("装饰器后面输出")

return c

return inner

@outer

def f1():

print("原函数")

f1()

装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。

当多个函数有重复代码时可以将此部分代码单独拿出来整理成一个装饰器,然后对每个函数调用该装饰器,这样可以实现代码的复用,而且可以让原来的函数更轻便。还有就是当我们需要为多个已经写好的函数添加一个共同功能,比如检查参数的合法性。我们就可以单独写一个检查合法性的装饰器,然后在每个需要检查参数合法性的函数出调用即可,而不用去每个函数内部修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值