python函數中輸入關鍵字參數——字典參數,怎麼樣按輸入的順序輸出__函數

來源:互聯網
上載者:User
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丁。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.