1
2
3
4
5
6
7
|
>>> def add(a,b):
return a + b
>>> print add( 1 , 2 )
3
>>> print add( 'abc' , '123' )
abc123
|
2.参数个数可选,参数有默认值的传递
1
2
3
4
5
6
7
8
9
10
11
12
|
>>> def myjoin(string,sep = '_' ):
return sep.join(string)
>>> myjoin( 'Test' )
'T_e_s_t'
>>> myjoin( 'Test' , ';' )
'T;e;s;t'
?
>>> def myrange(start = 0 ,stop,step = 1 ):
print stop,start,step
SyntaxError: non - default argument follows default argument
|
参数sep的缺省值是'_' 如果这个参数不给定值就会使用缺省值 如果给定 则使用给定的值
需要注意 如果一个参数是可选参数 那么它后面所有的参数都应该是可选的,另外 可选参数的顺序颠倒依然可以正确的给对应的参数赋值 但必须清楚的指明变量名和值
3.个数可变参数
1
2
3
4
5
6
|
>>> def printf(fmt, * arg):
print fmt % arg
>>> printf ( '%d is larger than %d' , 2 , 1 )
2 is larger than 1
|
函数中的*arg必须是最后一个参数,*表示任意多个参数,*arg会把除了前面以外所有的参数放到一个tuple里面传递给函数,可以在函数中通过arg来访问
arg是一个tuple,可以通过访问tuple的方法在函数中访问arg
另一种方式传递任意个数参数是通过dictionary的方式来传递 同样也可以接受多个参数 但是每个参数需要指明名称对应关系比如a=1,b=2,c=3
1
2
3
4
5
6
7
8
9
|
>>> def printf( format , * * keyword):
for k in keyword.keys():
print "keyword[%s] %s %s" % (k, format ,keyword[k])
>>> printf( 'is' ,one = 1 ,tow = 2 ,three = 3 )
keyword[three] is 3
keyword[tow] is 2
keyword[one] is 1
|
这些方法可以混在一起用 但是一定要注意顺序,函数会先接受固定参数,然后可选参数,然后任意参数(tuple),然后字典任意参数(dict)
以上这篇浅谈Python中函数的参数传递就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。