*args和**kwargs用法

''' @Date: 2019-10-10 21:14:56 @LastEditors: 冯浩 @LastEditTime: 2019-10-20 22:38:16 '''

def func(*args): # just use "*" to collect all remaining arguments into a tuple
    # 这里的*是关键符号,args能够替换为其余命名
    # 更通常的函数定义方式是def fun(*args,**kwargs),
    # 能够在许多Python源码中发现这种定义,
    # 其中*args表示任何多个无名参数,它本质是一个元组tuple;
    # **kwargs表示关键字参数,它本质上是一个字典dict。
    numargs = len(args) print("参数数量: {0}".format(numargs)) for i, x in enumerate(args): print("参数 {0} 是: {1}".format(i, x)) print() func('a', 'b', 'c', {1: 'one', 2: 'two'}) func(('a', 'b', 'c')) func(['1', '2', '3']) print('-'*32) ''' 参数数量: 4 参数 0 是: a 参数 1 是: b 参数 2 是: c 参数 3 是: {1: 'one', 2: 'two'} 参数数量: 1 参数 0 是: ('a', 'b', 'c') 参数数量: 1 参数 0 是: ['1', '2', '3'] '''

def func_dict(**kwargs): print('传入参数长度为{0}, 类型为{1}, 内容为{2}'.format( len(kwargs), type(kwargs), kwargs) ) for key,value in kwargs.items(): print('键: {0}, 值: {1}'.format(key,value)) # 注意这里变量不能为数字,可是字典能够. # 如1='one'不被容许
func_dict(one='', two='') ''' 传入参数长度为2, 类型为<class 'dict'>, 内容为{'one': '一', 'two': '二'} 键: one, 值: 一 键: two, 值: 二 '''
相关文章
相关标签/搜索