代码:
root@linux:/study/python# cat maxi.py #!/usr/bin/python def our_max(*values): if not values: return None m = values[0] for v in values[1:]: if v > m: m = v return m print "our_max(1):", our_max(1) print "our_max(1,2):", our_max(1,2) print "our_max(1,2,3):", our_max(1,2,3)
root@linux:/study/python# ./maxi.py
our_max(1): 1
our_max(1,2): 2
our_max(1,2,3): 3
说明:
(1)*values中的“*”号代表将所有参数做成一个元组,比如参数为(1),则相当于(1);参数为(1,2)则(*values)相当于(1,2)
(2)可以只有部分参数为可变参数:
def append_all(old, *new): for n in new: old.append(n) return old values = [] print "append_all(values,1,2,3):", append_all(values, 1, 2, 3)
append_all(values,1,2,3): [1, 2, 3]
注意:不允许有两个及两个以上可变参数!