美文网首页
python 函数中定义函数和函数嵌套

python 函数中定义函数和函数嵌套

作者: 黑小柴 | 来源:发表于2020-03-23 14:31 被阅读0次

例如:

def aaa():
    a=False
    print id(a)

    def waiting():
        global a
        a=True
        print id(a)
    
    waiting()
    print id(a)
    return a

if __name__ == "__main__":
    print aaa()

结果为False
看似waiting()中global a能调用aaa()中的a, 实则不然, 看似global到外面一层, 实则global只作用于最外层的全局变量, 所以waiting()中的global a指的是aaa()函数外的变量a, 与aaa()中的无关.
实现方法:

def aaa():
        global a
    a=False
    print id(a)

    def waiting():
        global a
        a=True
        print id(a)
    
    waiting()
    print id(a)
    return a

if __name__ == "__main__":
    print aaa()

而真正的函数嵌套是这样子的

def multiplier(factor):
     def multiplyByFactor(number):
          return number*factor
     return multiplyByFactor
>>>double = multiplier(2)
>>>double(5)
10
 
>>>triple=multiplier(3)
>>>triple(3)
9
 
>>>multiplier(5)(4)
>>>20

相关文章

  • Python技巧: 携带状态的闭包

    前言 在 Python 中,函数也是一个对象。因此,我们在定义函数时,可以再嵌套定义一个函数,并将该嵌套函数返回,...

  • python 函数中定义函数和函数嵌套

    例如: 结果为False看似waiting()中global a能调用aaa()中的a, 实则不然, 看似glob...

  • Python笔记四 装饰器

    装饰器 = 高阶函数+函数嵌套+闭包 高阶函数 = 参数 or 返回值为函数 函数嵌套 = 在函数中定义函数 闭包...

  • Python函数嵌套-作用域-闭包-LEGB-函数销毁

    1 函数嵌套 一个函数中存在另外一个函数(定义/调用),这种方式我们称之为函数嵌套。所以:函数的嵌套主要分为嵌套调...

  • Python装饰器2-嵌套函数

    嵌套函数 嵌套函数(Nested function)是在另一个函数(即:封闭函数)中定义的函数 引用自:https...

  • 每天学一点Swift----闭包(一)

    五.嵌套函数 1. Swift还支持在函数体内定义函数,这种在函数体内定义的函数称为嵌套函数 2.默认情况下,嵌套...

  • Python闭包

    闭包 ⑴ 定义 函数中嵌套了一个函数。最外层的函数我们称为“外部函数”,嵌套在内的函数我们称为“内部函数”。内部函...

  • 函数的嵌套与递归

    Python语言允许在函数定义中出现函数调用,从而形成函数的嵌套调用,如下所示。 运行结果如下图所示。 在上例中,...

  • 2018-11-20

    python函数的闭包 闭包: 嵌套函数调用外部函数的变量 注意: 闭包必须是内部函数调用外部函数定义的变量,这其...

  • python:函数说明

    Python: 函数参数魔法 2016-12-01 函数参数 在 Python 中,定义函数和调用函数都很简单,但...

网友评论

      本文标题:python 函数中定义函数和函数嵌套

      本文链接:https://www.haomeiwen.com/subject/nquyyhtx.html