博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
命名空间
阅读量:4514 次
发布时间:2019-06-08

本文共 1118 字,大约阅读时间需要 3 分钟。

 

一、命名空间

      (1) 命名空间分为三种:1、全局命名空间

                                        2、局部命名空间

                                        3、 内置命名空间

      (2) 三种命名空间的加载和取值顺序:内置命名空间>全局命名空间>局部命名空间

     (3)取值:

                在局部调用:局部命名空间->全局命名空间->内置命名空间

 

x = 1def f(x):    print(x)print(10)
View Code

 

 

                  在全局调用:全局命名空间->内置命名空间

x = 1def f(x):    print(x)f(10)print(x)
View Code

二、作用域

        

作用域就是作用范围,按照生效范围可以分为全局作用域和局部作用域。

全局作用域:包含内置名称空间、全局名称空间,在整个文件的任意位置都能被引用、全局有效

局部作用域:局部名称空间,只能在局部范围生效

 

作用域: 小范围的可以用大范围的 但是大范围的不能用小范围的 范围从大到小(图) 在小范围内,如果要用一个变量,是当前这个小范围有的,就用自己的 如果在小范围内没有,就用上一级的,上一级没有就用上上一级的,以此类推。 如果都没有,报错 三、函数嵌套       函数嵌套的调用
def max2(x,y):    m  = x if x>y else y    return m
View Code

         函数嵌套定义

def f1():    print("in f1")    def f2():        print("in f2")    f2()f1()
View Code

四、函数的作用域链

def f1():    a = 1    def f2():        print(a)    f2()f1()
View Code
def f1():    a = 1    def f2():        def f3():            print(a)        f3()    f2()f1()
函数作用域链2
def f1():    a = 1    def f2():        a = 2    f2()    print('a in f1 : ',a)f1()
作用域链3

五、闭包

    1、 闭包分为:1、闭:内部函数

                     2、包:包含对外部函数的作用域中变量的引用

    2、闭包常用的形式:

def hei():    x = 20    def inner():        print(x)  #局部的    return inneri = hei()i()  #全局
闭包常用的形式

转载于:https://www.cnblogs.com/mengqingjian/p/7240568.html

你可能感兴趣的文章
sql server 2008语言基础: T-sql语言基础2简单技巧
查看>>
Typescript + React-Router + Webpack 实现按需打包/加载
查看>>
underscore
查看>>
springboot项目如何在tomcat6中部署成功
查看>>
神器metasploit中Msfvenom 的用法(外文翻译转)
查看>>
[项目管理] 布鲁克斯法则
查看>>
SpringMVC
查看>>
交通灯管理系统笔记
查看>>
Hadoop MapReduce编程 API入门系列之wordcount版本3(七)
查看>>
前端html及标签
查看>>
day2-mysql基本命令和数据类型
查看>>
早上好~
查看>>
【Oracle】Oracle锁表处理
查看>>
CSS垂直翻转/水平翻转提高web页面资源重用性
查看>>
php-7.1.0 rpm包制作
查看>>
configparser模块
查看>>
SET方法内存管理
查看>>
3D数学读书笔记——矩阵基础
查看>>
jdk1.5多线程Lock接口及Condition接口
查看>>
四则运算分析题
查看>>