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()
    
    
    当你的才华还撑不起你的野心的时候,你就应该静下心来学习; 当你的能力还驾驭不了你的目标时,就应该沉下心来历练。
  • 相关阅读:
    Flask之threading.loacl方法
    websocket之简易聊天室
    websocket介绍
    Flask之jinja2模板语言
    Flask之基础
    Linux之项目的部署
    Linux之nginx负载均衡
    Linux之nginx
    Linux之redis-cluster
    Linux之redis-sentinel
  • 原文地址:https://www.cnblogs.com/llwwhh/p/11099638.html
Copyright © 2011-2022 走看看