Python——装饰器

什么是装饰器:

​ 装饰器的作用顾名思义,起到一个装饰的作用,它可以将我们已经写好的函数进行进一步的修饰,但又不将被装饰的函数的代码修改。

为什么用装饰器:

​ 一般来说,如果我们想给原本的函数进行修改的话,最直接的方法是直接修改函数的代码。但如果我们已经在文件中写好了大量的代码,这容易引起写好的代码产生一些意料之外的副作用。在 python 提供了装饰器来实现装饰了函数而又不修改原函数的语法。

如何使用:

​ 使用符号 @ 来表示使用装饰器。实际例子如下

#Situation 1
#当我们正常使用函数时:
def Say_Hello():
    print ("Hello!");
    renturn 0;
    
def Say_Name():
    print ("Name");
    renturn 0;
    
#正常调用的话如下:
Say_Hello()
Say_Name()

#Situation 2
#如果我们想让每次打招呼时自动说 Name,如下:

def Decoration_Name(fun_c):		#定义如何装饰函数
    def Wapper():    #封装
        fun_c ();		#先输出 Hello
        print ("Name");	 #输出 Name
    return Wapper;		#返回被装饰后的的函数

def Say_Hello():      #正常定义被装饰的函数
    print ("Hello!");
    
Say_Hello = Decoration_Name(Say_Hello)
#正常调用如下:
Say_Hello()		
#输出为:
#	   Hello!
#	   Name

#Situation 3
#如果我们使用装饰器 @ 后代码变为如此
def Decoration_Name(fun_c):		#定义如何装饰函数
    def Wapper():    #封装
        fun_c ();		#先输出 Hello
        print ("Name");	 #输出 Name
    return Wapper;		#返回被装饰后的的函数

@Decoration_Name
def Say_Hello():      #正常定义被装饰的函数
    print ("Hello!");

#正常调用
Say_Hello()
#输出为:
#	   Hello!
#	   Name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值