糞仕様orz

いや、知らなかった僕がわるいかもしれないけどさ。。。

def append(a=[]):
  a.append(1)
  print a

実行結果

> append()
[1]
> append()
[1,1]
> append([2])
[2,1]
> append([3])
[3,1]
> append()
[1,1,1]

デフォルト値に[]とか使ってハマると思わないじゃんよ。
(確かに、知ってれば使いようもある気がするけど。)

本格的に何かPythonの本とか読むべきな気がしてきた。
いろいろ仕様が他の言語と違う気がするので、なぜこんな仕様にしたのかとか結構興味がある。