zoukankan      html  css  js  c++  java
  • Python基础编程闭包与装饰器

    闭包的定义

    1. 闭包是嵌套在函数中的函数。
    2. 闭包必须是内层函数对外层函数的变量(非全局变量)的引用。

    闭包格式:

    def func():
        lst=[]
        def inner(a):
            lst.append(a)
            return lst
        return inner
    
    ret=func()
    print(ret(100))			#[100]
    print(ret(200))			#[100, 200]				
    

    判断是不是闭包的方法:

    # 判断一个函数是不是闭包 == 闭包函数有没有自由变量
    print(函数名.__code__.co_freevars)
    

    闭包的应用:

    1,保证数据的安全。

    2,装饰器的本质。

    3.1装饰器基本格式

    装饰器:在不改变原函数内部代码的基础上,在函数之前和之后执行某个功能

    def func(arg):
        def inner():
            print('alex')
            v=arg()
            print('wusir')
            return v
        return inner
    #第一步:执行index并将下面的函数当作参数传递:相当于func(index)
    #第二步:将func的返回值重新赋值给下面的函数 相当于:index=func(index)
    @func
    def index():
        print(123)
        return 666
    
    print(index)
    

    装饰器的编写格式

    def 外部函数(参数):
        def 内部函数(*args,**kwargs):
    		return 参数(*args,**kwargs)
        return(内层函数)
    @外层函数
    def index()
    	pass
    
    
    inde()
    
    
    当你的才华还撑不起你的野心的时候,你就应该静下心来学习; 当你的能力还驾驭不了你的目标时,就应该沉下心来历练。
  • 相关阅读:
    WPF程序国际化
    MVVM框架搭建
    最全前端开发面试问题及答案整理
    最小化运行批处理
    C#中App.config文件配置获取
    VS2017 打包成exe
    Inno Setup生成桌面快捷方式
    C#文件读写(txt 简单方式)
    Flume 学习笔记之 Flume NG概述及单节点安装
    快学Scala 第二十课 (trait的构造顺序)
  • 原文地址:https://www.cnblogs.com/llwwhh/p/11099638.html
Copyright © 2011-2022 走看看