python函数中输入关键字参数——字典参数,怎么样按输入的顺序输出

python函数中输入关键字参数——字典参数,怎么样按输入的顺序输出?

为了方便理解,举多个例子:

例子一:

https://www.zhihu.com/question/24360507


#编写者

 def test(**kwargs):

     print args.keys()

#使用者,我如下调用

test(a=1, c=3, d=2, e=4)

#然后输出的关键字是按照函数调用的顺序给输出(a,c,d,e),而不是无序输出。

例子二:

从使用者的角度,如下调用函数最人性化和清晰

in(id=4,name='ding')
in(iq=100,eq=90)
in(code='good',date=16)

从编写者的角度分析,参数名可变,参数值可变,参数个数可变,显然采用**kwargs——关键字参数,比较合理。

解决方法:

#目标:test(id=4,name='ding')
#从数学角度上分析,估算使用者按键盘的次数为:17

1.采用网友的建议,输入时附加顺序。

test(id=4,name='ding',order_list=('id','name'))

显然,这很不人性化,对于使用者的角度是特别不合理的,不适合产品需求。

从数学角度上分析,估算使用者按键盘的次数为:32

Wrong!

2.换种思路,改成用可变参数输入,这样即可按照输入的顺序输出

test('id',4,'name','ding')

可以看出比第一种方法简单一些。

从使用者的角度分析,麻烦在于还需拆分输入参数,甚至当参数多了后,操作数几何暴增。

从编写者的角度分析,麻烦在于还得识别参数的类型,比较复杂。

从数学角度上分析,估算使用者按键盘的次数为:19

Not Good!

3.在不满足顺序输出的要求下,采用可变参数输入

def test(**kwargs)

但是可变参数就是无序字典,如果要顺序输出,在查阅了大量资料后,确定了两者矛盾,无法调和!!!

我现在的想法是看能不能改变python里面的机制——解释器。

如果广大网友大牛,有想法的有解决方式的,欢迎下面评论或私聊!!!!!

Can’t be achieved Or Very Hard。

4.最完美接近的手段


#编写者

def test(string):

    #伪代码

    Orderdict=Orderdict(string.replace(',','='))

#使用者:

test("id=4,name='ding'")

如果读者亲自测试,就会发现无论

从编写者的角度出发,编写难度和复杂度下降!

从使用者的角度出发,就多了一个按键”“

从数学角度上分析,估算使用者按键盘的次数为:18

Much Good.

最后,如果您觉得有用或者有想法的话,欢迎点赞或者评论。

python:190341254

丁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值