码迷,mamicode.com
首页 > 其他好文 > 详细

闭包函数与装饰器

时间:2019-07-11 18:51:31      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:优先   接收   turn   rom   from   恢复   print   return   赋值   

---恢复内容开始---

一:闭包函数

【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()                   # 调用内部函数

 

 

 

 

---恢复内容结束---

闭包函数与装饰器

标签:优先   接收   turn   rom   from   恢复   print   return   赋值   

原文地址:https://www.cnblogs.com/SR-Program/p/11171854.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!