Python 动态参数用元祖和字典做函数输入参数的例子

一直好奇函数定义里的*args *kwargs是怎么实现的, 查阅资料后自己写了一个例子. 注意一下这里 pKeys=list(para.keys()) , 字典的keys返回类型是 dict_list, 必须用list()进行转换,否则不能调用.

注意 *args和 *kwargs 必须放最后, 要不提示语法错误


# 动态参数
def TuplePara_add(*args):
    ''' 只用元祖做参数'''
    result =  args[0]+args[1]
    return result

def DictPara_add(**args):
    ''' 只用字典做参数'''
    return args["x"] + args["y"]

def dict_tuple_mixed_para(*args,**kwargs):
    ''' 元祖与字典混合参数 '''
    para={'x':0 , 'y':0 , 'z':0}
    pKeys=list(para.keys())
    
    if args:
        for i in range(0,len(args)):
            KeyStr= pKeys[i]
            para[KeyStr] = args [i]
    if kwargs:
        kwKeyList= list(kwargs.keys())
        for i in range (0, len(kwargs)):
            KeyStr = kwKeyList[i]
            para[KeyStr] = kwargs [KeyStr]
    print(f'元祖与字典混合输入参数 x:{para["x"]} y:{para["y"] } z:{ para["z"]}')
    return para['x'] + para['y'] + para['z']

if __name__ == "__main__":
    print(f"Tuple参数函数返回:{TuplePara_add(2,3)}")
    print(f"字典参数函数返回: { DictPara_add(x=6,y=9)}")

    print(f'混合参数一:{dict_tuple_mixed_para(5,9,z=12)}')      # 显示 x,y,z 的值
    print(f'混合参数二:{dict_tuple_mixed_para(5,9,x=12)}')      # 只显示 x,y 的值
    # print(f'混合参数三:{dict_tuple_mixed_para(x=5,9,12)}')      # 语法错误

返回结果

Tuple参数函数返回:5
字典参数函数返回: 15
元祖与字典混合输入参数 x:5 y:9 z:12
混合参数一:26
元祖与字典混合输入参数 x:12 y:9 z:0
混合参数二:21

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值