本文共 870 字,大约阅读时间需要 2 分钟。
python允许在定义函数的时候,其函数体内又包含另外一个函数的完整定义,这就是我们通常所说的嵌套定义。 为什么?因为 函数是用def语句定义的,凡是其他语句可以出现的地方,def语句同样可以出现。 像这样定义在其他函数内的函数叫做内部函数,内部函数所在的函数叫做外部函数。当然,我们可以多层嵌套, 这样的话,除了最外层和最内层的函数之外,其它函数既是外部函数又是内部函数。实例1:
def foo(): #定义函数foo m=3 #在foo函数内定义变量m=3 def bar(): #在foo函数内定义函数bar n=4 #在bar函数内定义局部变量n=4 print m+n bar() #在foo函数内调用bar函数 print mfoo() #调用foo函数结果: 7 3
实例2:
spam = 99 #定义全局变量spamdef tester(): def nested(): global spam print 'spam=',spam #打印全局变量的值 spam += 1 #修改全局变量的值 return nested #tester函数的返回值是nested函数t=tester() #调用函数tester,将得到的返回值赋给tprint type(t) #返回值t的类型是functionprint t #打印返回值的信息tester()() #调用函数tester,得到的返回值是nested函数对象,最后调用函数nestedprint 'spam=',spam #打印修改后的全局变量的值结果: <type 'function'> <function nested at 0x02937CF0> spam= 99 spam= 100
转载地址:http://jjyai.baihongyu.com/