为了账号安全,请及时绑定邮箱和手机立即绑定

装饰器一直弄不弄,怎么办?

装饰器这节,从看书,看视频,看帖子还是不懂啊。。。求大神帮帮忙,应该要怎么理解才好呢

正在回答

1 回答

教程的例子有点复杂,给你看个简单的:

# -*- coding: utf-8 -*-
def deco(func):  #装饰器函数,用来重新定义func
    print 'deco() called'  #打印:调用装饰器函数
    func()    #调用原函数
    return func
 
@deco
def myfunc(): #原函数定义
    print ' myfunc() called.'

输出结果:

deco() called

 myfunc() called.

不用@,也可以这样调用装饰器函数:

def myfunc():
    print ' myfunc() called.'
myfunc=deco(myfunc)   #将原myfunc函数传入装饰器函数,生成新的myfunc函数

装饰器函数就是对原函数进行改造,重新使用,但原函数定义不变,仍可以直接调用

myfunc()  #直接调用

结果:

myfunc() called.


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

装饰器一直弄不弄,怎么办?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号