Python Code Reading 07 行って参りました。
Python Code Reading 07 に参加してきました。
2009/01/23 19:00〜 Sun Microsystems用賀セミナールーム にて
今回の内容は、3.0, 2.6でPythonに導入された機能についてです。
ただし、全てのテーマを扱うのは無理なので、今回のテーマは
- io
- decimal
に絞った話になりました。講師は noriさんです。
また、アプリケーションをpythonのバージョンアップに対応させる作業がはじまるお・・
immutable
変更不可能オブジェクト。
Hashのキーにすると大きな影響がでるらしい。
後で試す。何か、都合の悪いことが起きることだけ覚えておく。
Abstract Base Classes
新しくメソッドが導入された。
__isinstance __issubclass
クラスの継承関係、同一性を保証するのは紳士協定。
サブクラスの作り手側が対応する。
bytes
bytesは、C言語のchar配列相当。
いくつかのAPIが、このbytesを使用するように変更された。
bytesはこれから、あちこちで多用されそうだ。
ソースコード上では、bを使うと、リテラルをバイト配列として宣言できる。
val = b'バイト列'
bytes is mutable ? or immutable ?
mutableなbytes としては bytearray が用意されている。
拡張された文字列フォーマッタ
同時に数字と名前のキーをとれるように。
他、いろいろ。
"The story of {0}, {1}, and {c}".format(a, b c=d)
名前付きだけのフォーマッタだけあれば、十分ではないか?
io.pyのソースコード追跡
難しい。難しくて全然わからん。いや、冷静になれば読めるけど。
decimal.py
同じくコード読解。ちょっと話の流れを追いづらかった。
decimalは、下の例のように、丸め誤差の発生に困る場合などで使用する。
python Python 2.5.1 (r251:54863, Nov 11 2008, 17:46:48) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 10.2 10.199999999999999 >>>
pythonは、ソースコードの上の方に、クラスの使い方が書いてあるし、
テストコードも入っているから、ライブラリの使い方がわかりやすく良いですね。
感想
後半、コードの読解を始めたあたりは、少し追えませんでした。
後ろに座ってたのと、目が疲れていたので、画面のコードを視認しづらかったのが敗因です。
不覚。
あと、Python Code Readingは 19:00?21:00だから、そこから店に移動すると、懇親会は早くて21:30開始。
それだと、全く長居できないので、今回は懇親会への参加を断念した。それも残念なことのひとつ。
やはり、そろそろ引っ越すべきか。