zhangzhuowei

函数的嵌套

  1. 一个函数作为另一个函数的返回值
  2. 一个函数作为另一个函数的参数
  3. 在函数内部再定义一个函数
# 一个函数作为另一个函数的返回值
def foo():
    print(\'foo\')
    return \'foo\'
def zzw():
    print(\'zzw\',end = \' \')
    return foo()
zzw()    # zzw foo

def foo():
    print(\'foo\')
    return \'foo\'
def zzw():
    print(\'zzw\',end = \' \')
    return foo
zzw()()    # zzw foo    
# 利用return方法可以将函数作为另一个函数的返回值

# 在函数内部再定义一个函数
def zzw():
    m = 100
    def zha():
        n = 90
        print(\'我是zha\')
       print(\'我是zzw\')
zzw()    # 我是zzw
zha()    # NameError: name \'zha\' is not defined
# 对于函数内部定义的函数,如果函数内部没有调用语法,那么就不会生效
# 在函数外部调用函数内定义的函数会报错,因为函数内部和外部完全隔离,对于函数内的函数只能在函数内调用
  1. 函数的嵌套依然遵循函数的规则,即函数分隔作用域
  2. 对于一层函数来说,函数内的变量为局部变量,在外部无法访问。函数外的变量为全局变量,在内部可以调用无法修改
  3. 对于多层函数嵌套,依然遵循这个规则,对于当前函数来说,它外层的函数中的变量就相当于它的全局变量,而他内部本身的变量就相当于局部变量,无法被外层函数调用
def zzw():
    m = 100
    def zha():    # zha函数是定义在zzw函数内部的一个函数,无法在外部直接使用
        n = 90
        print(\'我是zha\')
       print(\'我是zzw\')
    return \'hello\'

分类:

技术点:

相关文章: