パイソン、*引数と** kwargsからの使用

I.はじめに

1. *引数と**は、2つの変数のパラメータが関数であるkwargsから

2. * argsが元祖を返します。

3. ** kwargsから辞書を返します。

II。デモ

定義:; ** kwargsからしか認識し、このキーパラメータa = 1、その他が識別されない以下の機能については、* argsが非キーワードパラメータA = 1以外のすべてのパラメータを識別することができます

DEF追加(**、*引数をkwargsから):
    プリント(引数、kwargsから)を


追加(1、2、3、4、A = 1、B = 2)
を追加(1)
を追加(A = 1、B = 2)
を追加(1、{ "A":1})
を追加( "1"、[1,2]、{ "A":1}、(1,2))
を追加(* [1、2]、** {」 A ":1})

結果:

(1、2、3、4){ '':1、 'B':2}
(1){}
(){ '':1、 'B':2}
(1、{ 'A' :1}){}
( '1'、[1、2]、{ 'A':1}、(1,2)){}

(1、2){ 'A':1}

結論:

1.それだけ= 1、B = 2 ** kwargsから、これはそれを認識することであるか、あるいは空の辞書を返すことは明らかであり、非A = 1、これはそれを認識することであるB = 2つの*引数、または他のリターンのために空の元祖。

2.しかし、({ "A":1} * [1、2]、**)に対する結果は(1,2)である理由、これが起こる追加{ 'A':1}、よりもむしろ([1 、2]、{「A」:1})は、それはあなたがそれの前に数*(1,2)*を追加するときに、2つの図1及び図2にそれを破ることと等価であるためであり、その後合格**ため*引数、その{「A」:1} *番号2つの同等の添加では、それが= 1に分割されて、その後渡さ** kwargsからは、最終的な結果は、(1 、2){ 'A':1}。

 

おすすめ

転載: www.cnblogs.com/hao2018/p/11537395.html