函数之动态参数

Posted Jasper_boy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数之动态参数相关的知识,希望对你有一定的参考价值。

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

动态参数分两种:

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

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

 

以上是关于函数之动态参数的主要内容,如果未能解决你的问题,请参考以下文章

python基础之函数(动态参数,注释,名称空间,第一类对象及使用和函数嵌套)

27 | 深入浅出之动态测试方法

代理模式之JDK动态代理

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

装饰模式之AOP之动态改变参数,和原函数绑定属性丢失

JAVA之AOP