When it’s ready.

出来るまで出来ない

pythonの引数にある*hogeとか**mapとか

よく見かけるPythonの書き方で*hogeとか**mapとか有るのがイマイチ理解できてなかった。ので、ググったけどお目当ての情報にありつけづ全然分からないので、Vの字に聞いた。thx V

*の場合

def asta_func(*hoge):
  print hoge
  for i in hoge:
    print i

こういう風に使ってあげる。そんで、呼ぶ時には適当に引数を付けて呼べる。

>>>asta_func(1,2,3)
(1, 2, 3)
1
2
3

リスト(というかタプル)になって渡されることになる。
とりあえづ作ったファンクションに引数がいくつになるか分からない的な時にコレやっていればとりあえづ、

TypeError: __init__() takes exactly 1 argument (2 given)

みたいなよく見るエラーはだいぶ無くせそう

**の場合

def asta_asta_func(**map):
  print map
  print map.values()
  print map.items()

asta_asta_func(a = 1, b = 2)

こういう風に引数名を指定して渡してあげることが出来る。
この実行結果は

{'a': 1, 'b': 2}
[1, 2]
[('a', 1), ('b', 2)]

素敵すぎる。勝手にmapになってくれるですよ。これを使わずに今まで2年Python書いてたかと思うと痛すぎる。

今後は、これらを使えばもっとスマートに色々書ける気がする。
改めてthx id:Voluntas