python *args,**kwargs参数

实际上,关键的是*和**

我们以三个例子来解释:

普通的使用参数:

def test1(arg):
    print(arg)
test1("a")
输出:
a

*是将剩下的参数用元祖表示

def test1(arg1,arg2,*args):
    print(arg1)
    print(arg2)
    print(args)
test1(1,2,3,"a","b")
输出:
1
2
(3, ‘a‘, ‘b‘)

**是将参数转换成字典进行表示

def test2(**kwargs):
    print(kwargs)
test2(a=1,b=2)
输出:
{‘a‘: 1, ‘b‘: 2}

最后,我们结合三种方式:(注意必须按照这种顺序)

def test4(arg1,arg2,*args,**kwargs):
    print(arg1)
    print(arg2)
    print(args)
    print(kwargs)
test4(1,2,3,4,5,a=1,b=2)
输出:
1
2
(3, 4, 5)
{‘a‘: 1, ‘b‘: 2}

原文地址:https://www.cnblogs.com/xiximayou/p/11688913.html

时间: 2024-11-02 00:34:07

python *args,**kwargs参数的相关文章

python *args *kwargs 参数详解

可变参数 在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可以是1个.2个到任意个,还可以是0个. 我们以数学题为例子,给定一组数字a,b,c--,请计算a2 + b2 + c2 + --. 要定义出这个函数,我们必须确定输入的参数.由于参数个数不确定,我们首先想到可以把a,b,c--作为一个list或tuple传进来,这样,函数可以定义如下: 1 def calc(numbers): 2 sum = 0 3 for n in numbers: 4 sum

python *args **kwargs,传入不固定的参数给函数,或者传入很多的内容给函数,常用在构造函数中。

''' 例1:展示*args的用法,传入多个参数,不进行预先定义. 本例传入了3个参数.没有预先定义.在函数内自动生成元组() ''' def q1(*args): print('例1') print(args) print(type(args)) print(args[0]) t1 = 123 t2 = 234 t3 = 345 q1(t1, t2, t3) print('-----------------') ''' 例2,和例1一样,但是传入字符串,元组,列表,都会在函数内生成元组() 注

python args & kwargs

Today,We will talk some about the argument and arguments ... #!/usr/bin/python def fun(*args): for value in args: print value if __name__ == '__main__': fun(11,22,33,44,55) What is type of (*args) ? Do you really want to know ,just keep read ... #!/u

动态传参(*args **kwargs 无敌传参) 作用域globals locals和名称空间 函数的嵌套 关键字nonlcas global

动态传参(重点) *, ***, ** :形参: 聚合 位置参数* -> 元组 关键字** -> 字典 实参: 打散 列表, 字符串, 元素 -> * 字典 -> ** 形参的顺序(重点): 位置 *args(位置参数动态传参) 默认值 **kwargs(关键字动态传参)以后写参数. 可以随意的进行搭配, 但是, 顺序不能串 * 在形参位置. * 表示不定参数-接收的是位置参数接收到的位置参数的动态传参: 都是元组def chi(*food): # 在形参这里把传递过来的实参进行了

(转)python中的参数:*args和**kwargs

def foo(*args, **kwargs):print 'args = ', argsprint 'kwargs = ', kwargsprint '---------------------------------------'if __name__ == '__main__':foo(1,2,3,4)foo(a=1,b=2,c=3)foo(1,2,3,4, a=1,b=2,c=3)foo('a', 1, None, a=1, b='2', c=3) 输出结果如下:args = (1,

python 中参数*args, **kwargs

python 中参数*args, **kwargs def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------' if __name__ == '__main__': foo(1,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4, a=1,b=2,c=3) foo('a', 1, None, a

python 位置参数和关键字参数 *args **kwargs

#!/usr/bin/env pythondef foo(*args,**kwargs): print('args: {0}'.format(args)) print('kwargs {0}'.format(kwargs)) foo(1,2,3,a='first',b='second') 运行结果: args: (1, 2, 3)     #位置参数是一个元组kwargs {'b': 'second', 'a': 'first'}   #关键字参数是一个字典 原文地址:https://www.c

python的函数介绍 位置参数 关键字参数 默认参数 参数组 *args **kwargs

1.数学意义的函数与python中的函数 数学意义的函数 y = 2*3+1 x =3 y =7 x是自变量,y是因变量 2.python中定义函数的方法 一个函数往往都是为了完成一个特定的功能而存在的,所以注释信息加上是个好习惯 def atest(x): "The function definitions" x += 1 return x def:     定义函数的关键字 atest:     函数名 ():     内可定义形参 "":    文档描述(非必

python函数参数*args **kwargs

毕业多年,把C++都就饭吃了....今天居然在纠结什么是形参什么是实参..... 定义函数里面写的参数就是形参,因为没有内存占用,实际调用时写的参数就是实参,因为有内存占用和传值 然后就是位置参数,可变参数和关键字参数 def foo(a,*b,**c): print(a) print(b) print(c) if __name__=="__main__": foo(1,2,3,4,k=1,g=2) 如上图程序,a,*b,**c这三个是形参,a,*b这两个是位置参数,**c是关键字参数