zoukankan      html  css  js  c++  java
  • 函数的嵌套及名称空间 作用域

    六.函数的嵌套
    1.在函数内又调用了其他函数
    def max2(x,y):  #两个值比较
        if x > y:
            return x
        else:
            return y
    res=(max2(1,3)
    print(res)
    
    def max3(x,y,z):   #三个值比较
        res1=max2(x,y)
        res2=max2(res1,z)
        return res2
    print(max3(11,99,2))
    
    2.函数的嵌套定义:在函数内又定义了其他函数
    def func1():
        print('from func1')
        def func2():
            print('from func2')
            print(func2)  #打印函数的内存地址
        func2()  #调用函数
    func1()        
    
    
    3.函数的层级嵌套 
    def f1():  
        print('f1')  #第一层结果
        def f2():
            print('f2')  #第二层结果
            def f3():
                print('f3')  #第三层结果
            f3()  #第三层调用
        f2()  #第二层调用
    f1()  #第一层调用
    
    
    七.函数的名称空间与作用域
    1.名称空间:namespaces:存放名字与值的绑定关系的地方
    2.名称空间分三类:
    2.1 内置的名称空间:存放Python解释器自带的名字,在解释器启动时就生效 解释器关闭则失效
    print int  都是Python内置的名称空间
    
    2.2 全局名称空间:文件级别的名字,在执行文件的时候生效,在文件结束或者文件执行期间被删除失效
    x=1  #全局变量 什么地方能引用
    def f1():
        def f2():
            print(x)
        f2()
    f1()
    
    2.3 局部名称空间:存放函数内定义的名字(函数的参数以及函数内的名字都存放与局部名称空间)
    函数调用时临时生效,函数结束则失效
    def f1():
        x=2  #局部变量
        print(x)
    f1()
  • 相关阅读:
    Docker大行其道—镜像
    Google 推出全新的两步验证机制
    安全警告——“Windows已经阻止此软件因为无法验证发行者”解决办法
    Word2010 自动生成二级编号
    正则表达式判断汉字
    c# IList<T> 深拷贝
    C#IList 取区间数据
    Oracle 同环比排除分母0
    Git 删除服务器的远程分支
    【转】C#获取当前路径7种方法
  • 原文地址:https://www.cnblogs.com/zhangcaiwang1/p/9694592.html
Copyright © 2011-2022 走看看