python函数匹配任意数目的参数
来源:互联网 发布:mac 不让安装不明文件 编辑:程序博客网 时间:2024/06/06 10:49
通过传递任何发送进来的参数来支持具有任意参数的任意函数:
def tracer(func, *pargs, **kargs): print('calling:', func.__name__) return func(*pargs, **kargs)def func(a, b, c, d): return a + b + c + dprint(tracer(func, 1, 2, c=3, d=4))
tracer收集参数,然后以varargs调用语法来传递它。
返回结果:
('calling:', 'func')10
对模块计时:
#File mytimer.pyimport timereps = 1000repslist = range(reps)def timer(func, *pargs, **kargs): start = time.clock() for i in repslist: ret = func(*pargs, **kargs) elapsed = time.clock() - start return (elapsed, ret)
计时脚本:
#file timeseqs.pyimport sys, mytimerreps = 10000repslist = range(reps)def forLoop(): res = [] for x in repslist: res.append(x + 10) return resdef listComp(): return [x + 10 for x in repslist]def mapCall(): return list(map(lambda x: x + 10, repslist))def genExpr(): return list(x + 10 for x in repslist)def genFunc(): def gen(): for x in repslist: yield x + 10 return list(gen())print(sys.version)for test in (forLoop, listComp, mapCall, genExpr, genFunc): elapsed, result = mytimer.timer(test) print ('-' * 33) print ('%-9s: %.5f => [%s...%s]' % (test.__name__, elapsed, result[0], result[-1]))
返回结果:
2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)]---------------------------------forLoop : 1.60391 => [10...10009]---------------------------------listComp : 0.77515 => [10...10009]---------------------------------mapCall : 1.73903 => [10...10009]---------------------------------genExpr : 1.18348 => [10...10009]---------------------------------genFunc : 1.14585 => [10...10009]
- python函数匹配任意数目的参数
- 可变数目的函数参数
- 参数数目不定的函数
- 检查任意数目的整型参数并返回最大值
- Python实现接受任意个数参数的函数
- 怎样实现数目不定的函数参数
- 怎样实现数目不定的函数参数
- 参数数目不确定的函数调用
- C++未确定参数数目的函数
- Python中任意函数参数问题
- Python函数中输入任意数量参数
- python 函数参数传递和参数匹配
- Python函数非匹配参数类型传递
- 可变数目的参数
- 传递任意数量的函数参数
- 7.1 可接受任意数量参数的函数:
- 7.1 可接受任意数量参数的函数:
- 创建和使用不定数目参数的函数
- 最大堆排序
- Oil Deposits poj DFS
- 解析社会媒体下的推广利器—微博
- Hadoop与HBase自学笔记
- Ubuntu 12.04 安装Adobe Air
- python函数匹配任意数目的参数
- CGDIplus2Dlg::OnDrawEllipse()
- javascript 刷新页面、返回上一页
- 详解ASP.NET的内置对象
- 黑马程序员_java异常处理
- Java中的分页技术
- sem_init() 函数
- Cocos2d-X 2.0嵌入MFC的子窗体的方法(1.0姐妹篇)
- jQuery Utilities