Python--函数参数的传递方式

来源:互联网 发布:举而不坚,坚而不久知乎 编辑:程序博客网 时间:2024/05/16 03:23

参数的类型

  • *args:不定参数列表
  • **kwargs:关键字参数字典

 Python函数的不定参数主要有三种方式:

  • (1):function(*args)
  • (2):function(**kwargs)
  • (3):function(*args, **kwargs)

方式一:function(*args)

 传入的参数将以元组形式存放在args中。
1、传入参数(1, 2, 3)

def func(*args):    print argsfunc(1,2,3)

输出:

(1,2,3)

2、直接将一个列表的所有元素当作不定参数传入(1, 2, 3)

def func(*args):    print argsfunc(*[1,2,3])

输出:

(1,2,3)

方式二:function(**kwargs)

传入的参数为以字典形式存在args中。
1、按规则传入参数

def func(**kwargs):    print kwargsfunc(a = 1, b = 2, c = 3)

输出:

{'a':1, 'b':2, 'c':3}

2、直接将一个字典的所有键值对当作关键字参数传入

def func(**kwargs):    print kwargsfunc(**{'a':1, 'b':2, 'c':3})

输出:

{'a':1, 'b':2, 'c':3}

方式三:function(*args, **kwargs)

传入的顺序必须和定义顺序相同,第一个是:不定参数列表,第二个是:关键字参数字典。
1、 传入不定参数列表

def func(*args, **kwargs):    print args    print kwargsfunc(1,2,3)func(*[1,2,3])

输出:

(1, 2, 3){}(1, 2, 3)  {}

2、传入关键字参数字典

def func(*args, **kwargs):    print args    print kwargsfunc(a = 1, b = 2, c = 3)func(**{'a':1, 'b':2, 'c':3})

输出:

()  {'a': 1, 'c': 3, 'b': 2}()  {'a': 1, 'c': 3, 'b': 2}

3、两种参数同时传入

def func(*args, **kwargs):    print args    print kwargsfunc(1,2,3, a = 4, b=5, c=6)

输出:

(1, 2, 3)  {'a': 4, 'c': 6, 'b': 5}

4、错误的传参数

def func(*args, **kwargs):    print args    print kwargsfunc(1,2,3, a=4, b=5, c=6, 7)

输出:

SyntaxError: non-keyword arg after keyword arg 
原创粉丝点击