码迷,mamicode.com
首页 > 其他好文 > 详细

函数之动态参数

时间:2016-11-29 14:22:41      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:war   value   需要   val   ict   log   tuple   传值   bsp   

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

动态参数分两种:

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

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‘}

 

函数之动态参数

标签:war   value   需要   val   ict   log   tuple   传值   bsp   

原文地址:http://www.cnblogs.com/shansongxian/p/6113034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!