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 ...

#!/usr/bin/python

def fun(*args):
    print type(args)
    for value in args:
        print value

if __name__ == ‘__main__‘:

    fun(11,22,33,44,55)

Okay,We know the (*args ) just a tuple type?

so,we can input a tuple as argument ...

#!/usr/bin/python

def fun(*args):
    print type(args)
    for value in args:
        print value

if __name__ == ‘__main__‘:

    my_tuple=(11,22,33,44,55)
    fun(my_tuple) 

Oh,What happened ? The result is no what we expect ...

See the below code,you will find the answer ...

#!/usr/bin/python

def fun(*args):
    print type(args)
    for value in args:
        print value

if __name__ == ‘__main__‘:

    my_tuple=(11,22,33,44,55)
    fun(*my_tuple)

Okay,see we got the result what we expect ...

Good,time to talk (**kwargs)

#!/usr/bin/python

def fun(**kwargs):

    print type(kwargs)
    for key in kwargs:
        print ‘key: ‘,key,‘value: ‘,kwargs[key]

if __name__ == ‘__main__‘:
    fun(name=‘Frank‘,age=23,school=‘IMUT‘)

Of course,you can input a dict as argument,but Don‘t forget the (**) again ...

If you really want to forget (**) ,like the below code ...

#!/usr/bin/python

def fun(**kwargs):

    print type(kwargs)
    for key in kwargs:
        print ‘key: ‘,key,‘value: ‘,kwargs[key]

if __name__ == ‘__main__‘:
    my_dict={‘name‘:‘Frank‘,‘age‘:23,‘school‘:‘IMUT‘}
    fun(my_dict)

You will got a error like the below :

So ,You don‘t really want to do it again ,right ...haha

#!/usr/bin/python

def fun(**kwargs):

    print type(kwargs)
    for key in kwargs:
        print ‘key: ‘,key,‘value: ‘,kwargs[key]

if __name__ == ‘__main__‘:
    my_dict={‘name‘:‘Frank‘,‘age‘:23,‘school‘:‘IMUT‘}
    fun(**my_dict)

Okay ! see the right result :

Thank you !

时间: 2024-07-30 13:52:51

python args & kwargs的相关文章

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 参数详解

可变参数 在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

011. Python中*args, **kwargs 和 pass 和self 解释

*args, **kwargs →在python都表示可变参数, *args表示任意多个任意类型无名参数, 是一个元组; **kwargs表示关键字参数(key/value参数), 是一个字典,接收的参数如a='hello',b=1 ; 注意如果*args, **kwargs同时使用的时候, 必须*args在前 #coding=utf-8 def fun(a,*b): print a print b print fun(1,2,3,4,5,6) #fun(1, a=2) 是会报错的 #输出结果:

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

(注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 中秋的夜,微凉,但却始终看不见月亮. 我想,它一定是害羞了,悄悄的躲到了乌云的后面. 嗯,就是这样,我真是太TM机智了. 正文: 注:<python核心编程第2版>的11.6可变长度的参数---章节中有详细介绍. 一.*args的使用方法 *args 用来将参数打包成tuple给函数体调用 例子一: def function(*args): print(args, type(args)) function(1) 输出结

python *args 与 **kwargs

描述: *args 和 **kwargs 主要用于函数定义. 你可以将不定数量的参数传递给一个函数.不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字.其实并不是必须写成*args 和**kwargs.  *(星号)才是必须的. 你也可以写成*ar 和**k. 而写成*args 和**kwargs只是一个通俗的命名约定. python函数传递参数的方式有两种: *args表示任何多个无名参数,它本质是一个tuple: **kwargs表示关键字参数,

python/*args和**kwargs

*args和**kwargs 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 #coding=utf8 __author__ = 'Administrator' # 当函数的参数不确定时,