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()
  • 相关阅读:
    HDU 4069 Squiggly Sudoku
    SPOJ 1771 Yet Another NQueen Problem
    POJ 3469 Dual Core CPU
    CF 118E Bertown roads
    URAL 1664 Pipeline Transportation
    POJ 3076 Sudoku
    UVA 10330 Power Transmission
    HDU 1426 Sudoku Killer
    POJ 3074 Sudoku
    HDU 3315 My Brute
  • 原文地址:https://www.cnblogs.com/zhangcaiwang1/p/9694592.html
Copyright © 2011-2022 走看看