程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

装饰器

发布于2019-08-06 09:59     阅读(424)     评论(0)     点赞(0)     收藏(0)


装饰器

函数里面定义函数 (函数里面可以定义类)

def foo():
    def bar():     #3
        print('in bar()')    #4

    print('in foo()')    #1
    bar()     #2
foo()

#结果
in foo()
in bar()

为什么要在函数里面定义函数呢?有啥特别之处?
函数里面函数的有效范围是在foo()函数里面的,
其实定义在里面的函数,在外面还是有办法访问的,可以吧函数变量弄到外面去,通过返回值

def foo():
    def bar():
        print('in bar()')

    print('in foo()')
    return bar    #这里的bar对应的是bar()这个函数的变量,是没有括号的

#foo()()   #也可以把下面两行注释掉,直接foo()(),因为foo()返回的是bar,
inner = foo()    #foo的返回值赋值给一个变量,inner对应的是一个函数对象
inner()     #inner()和bar(),是同一样的函数

装饰器

定义类的静态方法时,就使用了装饰器
@staticmethod #静态方法不需要self,实例方法要self。因为他不需要访问不同的实例的属性。 #静态方法不能访问实例属性,但是可以访问静态属性

def jump():    
    print("3 meters high")

装饰器的特点是用一个@开头的字符串
在我们阅读别人的代码时,会经常碰到装饰器
装饰器通常用来装饰函数
装饰器主要用来给函数增加一点功能
一般装饰器本身也是一个函数
我们可以想象成它包含了被装饰的



所属网站分类: 技术文章 > 博客

作者:没事就吃溜溜梅

链接:https://www.pythonheidong.com/blog/article/7359/4de34c2282b14edcd6f8/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)