python中的函数用法入门教程(2)
关键字绑定的可变参数 (**args这种形式,看原文档,不甚理解,暂且这样叫) def run(name,**args): keys = args.keys() for k in keys : print k,args[k] run('nana',type='open') typ
关键字绑定的可变参数 (**args这种形式,看原文档,不甚理解,暂且这样叫)
def run(name,**args): keys = args.keys() for k in keys : print k,args[k] >>> run('nana',type='open') type open >>> run('nana',type='open',title='gogo') type open title gogo #*arg 必须在**args的前面 def run(name,*arg,**args): for a in arg :print a keys = args.keys() for k in keys : print k,args[k] >>> run('nn','mm',1,2,'oo',type='open',title='gogo') mm 1 2 oo type open title gogo
参数列的分拆
>>> range(3, 6) # normal call with separate arguments [3, 4, 5] >>> args = [3, 6] >>> range(*args) # call with arguments unpacked from a list [3, 4, 5]
通过 lambda 关键字,可以创建短小的匿名函数
>>> def make_incrementor(n): ... return lambda x: x + n #相当于创建了一个一x为参数的匿名函数? ... >>> f = make_incrementor(42)#f = make_incrementor(n=42),设置n的值 >>> f(0)#其实调用的是匿名函数? 42 >>> f(1) 43 #看下面一个例子报的错误就可以明白一点了 >>>def t(n): ... print x*n >>>m = t(2) Traceback (most recent call last): File "<pyshell#85>", line 1, in <module> m = t(2) File "<pyshell#84>", line 2, in t print x*n NameError: global name 'x' is not defined
说是没有定义全局name 'x'
>>> x =10 >>> def t(n): ... print x*n >>> m = t(2) 20
希望本文所述对大家的Python程序设计有所帮助
精彩图集
精彩文章