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

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

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

正在回答

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进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信