Python3000の記事
- gihyo.jp: もっと知りたいPython3000: 第3回 言語仕様,組み込み関数,クラスへの変更
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):
- TRIVIAL TECHNOLOGIES 2.0: もっと知りたいPython3000 - 言語仕様,組み込み関数,クラスへの変更 (http://coreblog.org/ats/gihyo-python3000-3)
- PEP 3107: Function Annotations (http://www.python.org/dev/peps/pep-3107/)
argcheckデコレータの実装は非常に面白い。Function Annotationsで文字列リテラルだけでなくPythonの式を置けるのは知らなかった。引数チェック以外にも可能性があるのだろうか?後でPEPを熟読してみるつもり。