python闭包学习笔记四
2016-02-25 21:55
549 查看
#coding:utf-8 '''闭包作用:封装、代码复用.>>>>>>>闭包存放函数的方式''' #def my_sum(*arg): # if len(arg) == 0: # return 0 # for val in arg: # if not isinstance(val, int): # return 0 # return sum(arg) # #def my_average(*arg): # if len(arg) == 0: # return 0 # for val in arg: # if not isinstance(val, int): # return 0 # return sum(arg) / len(arg) # #print my_sum(1, 2, 3, 4, 5) #print my_average(1, 2, 3, 4, 5) #print my_sum('22') #print my_average(1, 2, 3, 4, 5, '33') def my_sum(*arg): print "in_my_sum=",arg return sum(arg) def my_average(*arg): print "my_average=",arg return sum(arg) / len(arg) #在该函数中返回了in_dec,而在in_dec中又引用了func,所以func被放入in_dec的属性中 def dec(func): def in_dec(*arg): ## func函数会被放入in_dec的属性中引用了func print "in_dec arg=",arg if len(arg) == 0: return 0 for val in arg: if not isinstance(val, int): return 0 return func(*arg) return in_dec '''my_sum == in_dec(*arg)''' my_sum = dec(my_sum) my_average = dec(my_average) '''先执行in_dec,再执行func''' print my_sum(1, 2, 3, 4, 5) print my_average(1, 2, 3, 4, 5) print my_sum('22') print my_average(1, 2, 3, 4, 5, '33')
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- 深入理解PHP之匿名函数
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例