shuichon

python可变参数

应用情景:定义了一个函数,需要根据不同的调用情况,来决定是否返回一个值或者直接打印另一个值。

此时就可以使用python中的可变参数来实现该要求。可变参数就是在参数前面添加一个“*”/星号。定义一个函数的时候,需要先定义这个函数需要多少个参数(或者说接受多少个参数),但有时函数的参数个数不固定,或者有些参数不一定由外部传入,例如print函数,则可以使用带*的参数作为可变数量参数来指定。

 

具体情境:定义个了一个函数show(),主要功能是,首先要传入一个参数,需要根据传入的值进行一些运算。另外需要传入另一个特定的值,然后show()函数可以根据传入的该参数,进行选择相应的操作。

代码及注释如下:

#! /usr/bin/env python
#coding=utf-8
def show(a,*b):
print 'the a value',a
if b:
print 'true'
else:
print 'false'
print 'done!'

if __name__ == '__main__':
print 'one argvs'
show(2)
print 'two argvs,but false'
print show(3,0)
print 'two argvs,and true'
print show(4,True)
print show(5,3,True)
print show(6,True,9)

 

+++++++++++++++++++++++++++++++++

运行后的回显如下:

one argvs
the a value 2
false
done!
two argvs,but false
the a value 3
true
done!
None
two argvs,and true
the a value 4
true
done!
None
the a value 5
true
done!
None
the a value 6
true
done!
None

可以对比输出的结果和程序运行的过程。看参数B的实际作用。和我们调用show函数,传入不同参数的不同输出。

 

评论