首页 > 编程语言 > 详细

python之闭包、装饰器

时间:2018-10-09 21:19:31      阅读:165      评论:0      收藏:0      [点我收藏+]

1. 函数的作用域

  1.在函数定义时候就固定,于调用位置无关,在调用的时候返回到函数定义的位置

x=1 #全局作用
def f1():      #整个f1函数是定义阶段
    def f2():
        print(x)
    return f2


def foo(func):
    x=3
    func() #func()调用阶段
x=200  #这样定义x又变成全局了
foo(f1())          #执行foo(f1()) 返回到F1函数里找x所以打印是1不是3

 

 

 

2.名称空间

内置名称空间:在python解释器启动产生的空间,简单理解就是python自带的方法比如:max()len()

全局名称空间 :在全局定义的好的名称空间,文件级别的产生的 比如:

x=1  #全局作用
def test():
  x=2 #局部作用
print(x) test()

if x=1 y=2
#全局作用
#在执行test()调用的时候先加载内置查找有没有test这个内置函数,如果去全局里查找test这个函数方法,最后局部

 

局部名称空间:在调用函数时候产生局部名称空间 y=2,在调用teset()立马产生了局部作用空间

nonlocal x 函数正上方的x的变量
global x 改成全局的变量

技术分享图片

3.闭包函数

 

 


 

python之闭包、装饰器

原文:https://www.cnblogs.com/yingfei/p/9762656.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!