将来的你会感谢现在努力的自己,骚年,趁年轻多努力学习 ------ Jasper_boy

函数之动态参数

基本函数只能所传的变量参数有限,如果想传任意个就需要使用函数动态参数

动态参数分两种:

*代表多个,
动态参数有一个*和两个*

1.一个 * 默认将传入的参数全部放置在元组中(按照顺序传值)
def f1(*args):
print(args,type(args))
f1(11,22,33,'abc','def') #传任意多个参数
输出结果:
(11, 22, 33, 'abc', 'def') <class 'tuple'> #显示的类型是元组
动态参数还可以将列表添加输出为元组
def f1(*args):
print(args,type(args))
f1(11,22,33,'abc','def')
li=['zhangsan','lisi','wanbwu']
f1(li,1,2,3)
输出结果:

(11, 22, 33, 'abc', 'def') <class 'tuple'>
(['zhangsan', 'lisi', 'wanbwu'], 1, 2, 3) <class 'tuple'>

 

2.**默认将传入的参数全部放置在字典中(对应key-value)

def f1(**kwargs):
print(kwargs,type(kwargs))
f1(k1='22',k2='45')
输出结果:
{'k1': '22', 'k2': '45'} <class 'dict'>

动态参数除了上面的两种情况还有一种叫万能参数

万能参数*args,**kwargs(默认都用这个)一个*在前
def f2(*args,**kwargs):
print(args)
print(kwargs)
f2(11,22,33,44,k1='v1',k2='v2')
输出结果:

(11, 22, 33, 44)
{'k2': 'v2', 'k1': 'v1'}

 

posted @ 2016-11-29 12:00  Jasper_boy  阅读(636)  评论(0编辑  收藏  举报