Python3000の記事

nonlocal文を使うと,入れ子に定義された関数から,すぐ外側の(ローカル)スコープにあるオブジェクトを参照することができます。

"参照"はnonlocalを指定しなくても可能。nonlocalを使うと"代入"できるようになる。

>>> def foo():
...   a = 1
...   def bar():
...     print a
...   bar()
...
>>> foo()
1

print >>>sys.stderr, "Some error occured!"

ケアレスミスだと思われる。正しくは以下。

print >>sys.stderr, "Some error occured!"


追記(2008/1/27):


argcheckデコレータの実装は非常に面白い。Function Annotationsで文字列リテラルだけでなくPythonの式を置けるのは知らなかった。引数チェック以外にも可能性があるのだろうか?後でPEPを熟読してみるつもり。