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

函数(命名空间和作用域)

时间:2019-01-13 01:48:08      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:空间   ret   设置   类型   inner   影响   class   命名   显示   

命名空间:

内置命名空间:就是解释器一启动就可以使用的名字,存储在内置命名空间内,启动解释器时加载到内存;

全局命名空间:在程序从上到下被执行的工程中依次加载到内存,放置我们设置的所有变量名和函数名;

局部内存空间:就是函数内部定义的名字。当调用函数时会产生这个命名空间,随着函数执行结束,这个命名空间就消失了;

在局部:可以使用全局和内置命名空间的名字;多个函数拥有多个局部命名空间,互不共享。

在全局:可以使用内置空间的名字,但不能使用局部空间的名字。

在内置:不可以使用全局及局部空间的名字;

当全局与内置名字相同是,会使用全局的名字;

作用域:

全局作用域:方法globals(),显示所有全局作用域的名字。

局部作用域:方法locals(),显示局部作用域的名字。

对于全局不可变数据类型的变量,在局部可以查看,但不能直接修改;若修改,要在程序的开始添加global声明

函数的嵌套:

嵌套定义:内部函数可以使用外部函数的变量nonlocal关键字声明了一个上层局部变量,会影响当前函数最近一层局部变量

闭包:

嵌套函数,内部函数调用外部函数的变量;——closue——方法,查看是否是闭包,例如:

def outer()
    a=1
    def inner()
        print(a)
        return inner
inn=outer
inn()

  

 

函数(命名空间和作用域)

标签:空间   ret   设置   类型   inner   影响   class   命名   显示   

原文地址:https://www.cnblogs.com/geng-xiaoqiaoliushui/p/10261466.html

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