美文网首页
闭包和装饰器

闭包和装饰器

作者: 嶝a | 来源:发表于2018-04-20 15:24 被阅读11次

什么是闭包?

各种专业文献的闭包定义都非常抽象,我的理解是: 闭包就是能够读取其他函数内部变量的函数。

"""

使用闭包完成装饰器的使用

"""

def logging(fn):

    # 注意,闭包主要的左右是为装饰器传递参数

    def inner(*keys,**kwargs):

        print("开始记录日志了……")

        fn(*keys,**kwargs)

        print("结束日志记录……")

    return inner

@logging

def login(username,password):

    print("用户登录了")

    print(username,password)

login(“x”,“xx”)

 @logging

def register():

  print("用户注册了")

 register()

*  可以存一个可变参数   a

** 可变类型   a=1

装饰器我们在开发程序时要遵循(The Open-Closed Principle) OCP 开发封闭原则 

 o :开发扩展

c  :关闭修改

p:封装变化

允许扩展功能 简单的说就是我们可以在原有的代码的基础上来增加更多的但不对已经使用的代码进行修改

def 新函数名(fn):#fn表示原先的方法

    def 新函数名2(*k,**keys):#可变参数

#新的功能

#然后调用fn 变身原有的方法

        fn(*k,**keys)

return 新函数名2

相关文章

  • python 高级 13闭包 装饰器

    闭包和装饰器 1.8 闭包和装饰器 学习目标 1. 能够说出闭包的定义形式 2. 能够说出装饰器的实现形式 ...

  • Python装饰器-专题笔记

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

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

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

  • python装饰器

    学习了闭包的概念之后,再来学习装饰器就简单很多。装饰器就是闭包的一个应用 代码举例 但是装饰器在使用时分加载态和调...

  • Python简明教程第15节:装饰器参数和装饰器解除

    装饰器参数 上面介绍的装饰器中的闭包和被装饰的函数的参数是相同的。 其实只要保证闭包和被装饰的函数中的参数保持一致...

  • Python-闭包和修饰器

    作用域 闭包 code: 装饰器 code: 装饰器案例 code:

  • 闭包和装饰器

    一、闭包 什么是闭包?在了解这个概念之前,我们先来看一个小例子。 上面的例子中,我们看到有一个外部函数,内部定义了...

  • 闭包和装饰器

    在一个函数内部再定义一个函数,并且这个函数用到了外面的函数的变量,那么将这个函数以及用到的一些变量称之为闭包 de...

  • 闭包和装饰器

    闭包 之前一直不明白闭包的定义-内层函数引用了外层函数的变量(包括它的参数)就构成了闭包。我觉得也没什么了不起的,...

  • 闭包和装饰器

    什么是闭包? 各种专业文献的闭包定义都非常抽象,我的理解是:闭包就是能够读取其他函数内部变量的函数。 """ 使用...

网友评论

      本文标题:闭包和装饰器

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