ITPub博客

首页 > 应用开发 > IT综合 > python中函数的参数传值方式

python中函数的参数传值方式

原创 IT综合 作者:zhyhouse 时间:2016-07-09 21:06:38 0 删除 编辑

1. def foo(p1,p2,p3,...):

列出有限个数的参数,并且彼此之间用逗号隔开。在调用函数的时候,按照顺序以此对参数进行赋值,特备注意的是,参数的名字不重要,重要的是位置。而且,必须数量一致,一一对应。第一个对象(可能是数值、字符串等等)对应第一个参数,第二个对应第二个参数,如此对应,不得偏左也不得偏右。

2. def foo(p1=value1,p2=value2,...)

这种方式比前面一种更明确某个参数的赋值。颇有一个萝卜对着一个坑的意味。

3.def foo(*args)

这种方式适合于不确定参数个数的时候,在参数args前面加一个*。以tuple元组形式接收收,哪怕是一个

4.def foo(**args)

这种方式跟上面的区别在于,必须接收类似arg=val形式的。以dictionary字典形式接收收,哪怕是一个

例:

>>> def foo(x,y=2,*targs,**dargs):

...     print "x==>",x

...     print "y==>",y

...     print "targs_tuple==>",targs

...     print "dargs_dict==>",dargs

...

 

>>> foo("1x")

x==> 1x

y==> 2

targs_tuple==> ()

dargs_dict==> {}

 

>>> foo("1x","2y")

x==> 1x

y==> 2y

targs_tuple==> ()

dargs_dict==> {}

 

>>> foo("1x","2y","3t1","3t2")

x==> 1x

y==> 2y

targs_tuple==> ('3t1', '3t2')

dargs_dict==> {}

 

>>> foo("1x","2y","3t1","3t2",d1="4d1",d2="4d2")

x==> 1x

y==> 2y

targs_tuple==> ('3t1', '3t2')

dargs_dict==> {'d2': '4d2', 'd1': '4d1'}






来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30319453/viewspace-2121771/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Python中的推导式
请登录后发表评论 登录
全部评论

注册时间:2015-07-01

  • 博文量
    23
  • 访问量
    68220