python嵌套函数

本文详细探讨了Python编程中的嵌套函数概念,解释了如何定义和使用内部函数,以及它们在复杂逻辑和代码组织中的作用。
摘要由CSDN通过智能技术生成

也叫内部函数


嵌套函数里面两个重要的概念:变量作用域和函数闭包

1. 变量作用域
   内部函数可以直接读取访问外部函数变量,但是不能修改;访问规则是从内到外函数逐级寻找变量
#!/usr/bin/env python

def outer(a):
    i = a + 1
    def inner():
        j = i + 1
        def innest():
          print "innest: i=%d,j=%d" % (i, j)
        innest()
    inner()

outer(1)

$ python t.py
innest: i=2,j=3


三级函数,innest可以访问inner的变量,也可以访问outer的变量,但是均不能修改他们。(如何才能修改,我也不知道,但是python 3提供机制修改)

2. 函数闭包

#!/usr/bin/env python

def outer(a):
    i = a + 1
    def inner():
        print "inner: i=%d" % i
    return inner

foo = outer(1)
foo()

$ python t.py
inner: i=2


聪明的程序员立马就有疑问了,为什么foo()还能正常执行呢,outer函数已经执行完毕退出了啊,其中的参数a和内部变量i怎么还能被foo使用呢,答案很简单这就是闭包的概念,请自行搜搜关键字:python 闭包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值