美文网首页
python闭包与装饰器

python闭包与装饰器

作者: 亿万年星空 | 来源:发表于2018-11-01 22:27 被阅读2次

闭包

如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。它只不过是个“内层”的函数,由一个名字(变量)来指代,而这个名字(变量)对于“外层”包含它的函数而言,是本地变量。
实例:

def set_passline(passline):
    def cmp(val):
        if val >= passline:
            print ('pass')
        else:
            print ('failed')
    return cmp

f_100 = set_passline(60)
f_100(89)

f_150 = set_passline(90)
f_150(89)

装饰器

简单地来说装饰器就是在不改变原有函数的前提下,为函数加入新的功能。

实例:

def dec(func):
    def in_dec(*arg):
        if len(arg) == 0:
            return 0
        for val in arg:
            if not isinstance(val , int):
                return 0
        
        return func(*arg)
    return in_dec

@dec
def my_sum(*arg):
    return sum(arg)

def my_average(*arg):
    return sum(arg)/len(arg)
#my_sum = dec(my_sum)
my_average = dec(my_average)

print (my_sum(1,2,5,4,5))

print (my_sum(1,2,3,4,5,'6'))

相关文章

  • Python的自定义超时机制——装饰器的妙用

    装饰器 关于装饰器的入门,可以参考这篇文章:12步轻松搞定python装饰器简单来说,装饰器其实就是一个闭包(闭包...

  • 2020-012 python闭包与装饰器

    python闭包与装饰器 闭包 函数和对其周围状态(lexical environment,词法环境)的引用捆绑在...

  • Python装饰器-专题笔记

    学会装饰器,Python更进阶 函数作用域到闭包到装饰器讲解,及闭包和装饰器的运用。 [√] 慕课网Meshare...

  • [python] 装饰器学习

    很多python的代码都带有装饰器=。=现在不学以后也要学学一下装饰器 闭包 在学装饰器之前先看看python的闭...

  • Python 2 - 高级用法 - 装饰器

    Python 2 - 高级用法 - 装饰器 一谈到 装饰器,就离不开闭包 闭包 闭包就是能够读取其他函数内部变量的...

  • Python装饰器——初识

    上次讲了Python的闭包,今天来讲一下闭包的应用——装饰器 1. 装饰器是什么 什么叫装饰器?顾名思义,它是一个...

  • python装饰器

    装饰器简述 要理解装饰器需要知道Python高阶函数和python闭包,Python高阶函数可以接受函数作为参数,...

  • python之理解闭包和装饰器

    python之理解闭包和装饰器 1、闭包函数 1.1 python中函数都是对象 结果: 上面定义一个shut函数...

  • Python闭包与装饰器

    闭包 1.函数引用 运行结果: 2.什么是闭包 运行结果: 3.重讲闭包 内部函数对外部函数作用域里变量的引用(非...

  • 【python】闭包与装饰器

    # 本次讲述的知识点也是非常重要的(严肃脸) # 先有的闭包,之后才生成了装饰器,同样的也是非常简单的东西。 # ...

网友评论

      本文标题:python闭包与装饰器

      本文链接:https://www.haomeiwen.com/subject/sapfxqtx.html