python3 *args: 複数の引数をリストやタプルとして受け取る **kwargs: 複数のキーワード引数を辞書として受け取る
*args
: 複数の引数をタプルとして受け取る**kwargs
: 複数のキーワード引数を辞書として受け取る
ぱっと見違和感アリアリ、というか意味わからん。
func(args[],kwargs{})じゃあ駄目なんですかい?
しかし、よくよく見てみると、*や**はポインターで合ってなくもないのかな?
例えばdef func(*args,**kwargs)
*[]で引数リスト[]の中身を参照、
func(‘name’,’ property’)なら、実引数で渡すのはargsのアドレスなので、*で()の中身’name’と’ property’を取りだしゃ良いわけだ。
次に(**kwargs)
kwargs={‘a’:’kintarou’ ,’b’=’gaki’}
実引数はkwargsのアドレス
*でキー値adic[‘a’,’b’]、**で更にその参照先 {‘a’ : ‘kintarou’ ,’b’ : ‘gaki’} だから、最終的な引数は[‘kintarou’,’gaki’]というわけか。
つまり、辞書{}は**[][]的な感じと捉えればいいということなのか?
だいぶ近くなってきた気がするが、違うかもしれない。だがなんとなく覚えた(≧∇≦)b
こういうのって全然恥ずかしいこと言っていて、焦って消すといういつものパターンだろうwww
ディスカッション
コメント一覧
まだ、コメントがありません