python换衣服_皇帝的新衣(python装饰器的理解和使用)

今天来说说装饰器。

在python语言中,装饰器的主要作用是减少重复输入的精髓。有了装饰器,可以非常直观而优雅的使用重复代码,就像一件衣服,可以给皇帝穿,也可以给任何人穿,只要你觉得需要这件“衣服”

语法: @装饰函数名 如@yifu 就是一个装饰器,yifu就是一个装饰函数

好吧,我们先来做一件衣服(装饰函数):

def yifu(func): #yifu是装饰函数名,func是皇帝(被装饰的函数),合起来就叫:皇帝的新衣

def gongneng():

print(“我是一个装饰的功能”)

func()

return gongneng

衣服做好了,这件衣服里面可以添加很多的功能(gongneng),如领结等相关的配饰

接下来,这件衣服给谁穿呢?皇帝或者其他人

我们来造一批人:

def people1():

print("我是路人甲")

def people2():

print("我是路人乙")

def people3():

print("我是路人丙")

def people4():

print("我是路人丁")

找了4个人,现在有了衣服,也有人了,衣服给谁穿呢,随便 吧

给路人甲,就在路人甲函数定义前面加上一件衣服:

@yifu

def people1():

print("我是路人甲")

给其他人也一样。

加了衣服的路人甲会输出衣服的功能和路人甲的功能,如果其他人也要这件衣服,没事,那就都给一件。

来一个例子,做了一个计算函数执行时间的装饰器(衣服),可以通过装饰器语句用在你喜欢用的函数上,就像衣服随便穿。

#皇帝的新衣:函数装饰器

import time

def yongshi(func): #这件衣服的功能是计算函数执行的时间

def baozhuang(): #这个功能是计算函数执行时间

start=time.clock()

func() #这是要装饰的函数

end=time.clock()

print('执行装饰器功能--用时:', end-start)returnbaozhuang

def foo1():

print ('没有装饰过的foo1函数被调用')

@yongshi #这个就是做好的装饰器了

def foo2():

print ('已经装饰过的foo2函数被调用')

#调用原来的函数

foo1()

print('-'*20)

foo2()

886082-20160803192233028-2119691603.jpg

总结:python的装饰器不是一个特别牛的功能,只是为了代码的简洁和优雅,在多处重复使用一个功能的时候,可以考虑用装饰器来更加简洁的表达,当然也可以穿很多件衣服,进行多次装饰,他的基础思想就是python能在函数里定义函数,这个功能倒是比较特别,装饰器就是基于这个功能而诞生的。充分体现了一些数据都是对象的思想。

有想用一用的冲动吗?

下一次想说什么没有想好,想好了再写。python入门还是比较酸爽,修炼在自身!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值