# 内部函数 # 函数本身是可以互相嵌套的 # example def whyBlogName(): def thisIsName(): print('张宇童博客') whyBlogName() # nonlocal 用来修饰局部变量 # nonlocal 寻找当前作用域的上一级作用域的变量 # name = '123' def blogName() : name = '张宇童blog' def sayTitle(): nonlocal name name = 'www.zyt8.cn' sayTitle() print(name) blogName() def listvarset(): a = 1 listvar = [a, 2, 3] def setlist(): listvar[0] = 10 setlist() print(a) listvarset() # 闭包函数 ''' 定义:内函数使用外函数的局部变量,并且外函数将内函数返回出来的方法 而里面的内函数叫闭包 ''' # example def zhangyutong_blog(): name = '原创' def url(): print('张宇童说过一句话,%s才是最好的经验' % (name)) return url res = zhangyutong_blog() res() # 递归 def digui(a): if a <= 0: return 0 return digui(a-1) + a res = digui(3) print(res) # example2 def blog_function(): name = '张宇童' title = '%s - 前沿技术博客' % (name) url = 'http://www.zyt8.cn' pv = 1000 ip = 500 blog_number = 60 def writeBlog(new_blog_number): nonlocal pv,ip,blog_number blog_number += new_blog_number pv += new_blog_number*300 ip += new_blog_number*100 def delBlog(del_blog_number): nonlocal pv,ip,blog_number blog_number -= del_blog_number pv -= del_blog_number*200 ip -= del_blog_number*50 def moodGood(number): writeBlog(number) print('%s今天心情不错,写了%d篇博文,现在一共%d篇博文啦,pv增加到%d,ip增加到%d' % (name, number, blog_number, pv, ip)) def moodBad(number): delBlog(number) print('%s今天心情很糟糕,删除了%d篇博文,当前还剩%d篇博文,pv减少到了%d,ip减少到了%d' % (name, number, blog_number, pv, ip)) def behavior(): return (moodGood, moodBad) return behavior res = blog_function() func = res() func[0](3) func[1](1) blog_function()()[0](1)
版权属于:
emer
文章声明:
本文版权内容属于《快乐小窝》转载请标明出处
评论一下?