闭包函数与装饰器
Posted sr-program
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闭包函数与装饰器相关的知识,希望对你有一定的参考价值。
---恢复内容开始---
一:闭包函数
【1】
定义:
(1)内部函数被外部函数包裹住
(2) 内部函数包含对外部函数作用域名字的引用
【2】外部函数传参
方法一:直接传参
例如:
def index(args): print(‘位置传参‘) index(args=‘传参‘) # 位置传参
方法二:闭包传参
def outter(): def inner(): x = 1 print(‘from inner‘ ,x) return inner res = outter() # 获取的是inner的内存地址 因为内部地址返回值是inner 将内部地址赋值给一个变量 res() # from inner 因为res此时获取的是inner的内存地址 通过该地址可以调用内部函数
PS:
(1)闭包函数 打破了层级关系的限制 可以在任意位置调用
(2)函数作用域在固定阶段就已经固定死了 与其调用位置无关
例如:
def outter(): x = 2 # 次优先调用 def inner(): x = 1 # 优先调用 print(‘from inner‘ ,x) return inner res = outter() x = 111 # 最后调用 res() # 因为其调用的是inner这个函数
基本定义模块:
def outter(x): def inner(): print(‘你要执行的操作‘) return inner # 返回内部函数的内存地址 res = outter(‘参数值‘) 111111111111111111111111111111111111111111# 接收内部函数地址 并向外部函数传参 res() # 调用内部函数
---恢复内容结束---
以上是关于闭包函数与装饰器的主要内容,如果未能解决你的问题,请参考以下文章