2007-11-01から1ヶ月間の記事一覧

__mro__

西尾泰和のはてなダイアリー: 多重継承時のメソッドの解決順序について (http://d.hatena.ne.jp/nishiohirokazu/20071129/1196334522) そうそう、「すべての親クラスを探索し終わってから祖父クラスを探す」という理解をしている人が多い(僕も含めて)ようだ…

エラーでなくワーニング (4)

Delegator (http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071129#p02) 『Pythonクックブック』を調べたが、AutoDelegatorというのが見つかった。重要なポイント以外を"..."で略す。 class AutoDelegator(object): ... def __getattr__(self, key)…

エラーでなくワーニング (3)

http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071129#p01 class << h def [](k) begin self.fetch(k) rescue print "key not found\n" end end end Rubyリファレンスマニュアルより: fetch(key[, default]) fetch(key) {|key| ... } key に関連づ…

エラーでなくワーニング (2)

jijixi's diary: エラーでなくワーニング (http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071128#p03) なるほど。しかし、Rubyのやり方でもHashクラスを書き直しているので他の部分に影響してしまうと思う。結局、使ったら元に戻しておかないとい…

エラーでなくワーニング

辞書のキーによるアクセス d[k] は存在しないキーに対して例外を投げるというのを読んでいてふと思ったのだが、例外でなくワーニングにすることは可能なのだろうか?つまり、d[k] で本来呼ばれるべき KeyError をフックして自前の例外を呼ぶ方法があるのだろ…

VPython

手軽に3DグラフィックができそうなVPythonを調査しようと思っていたら、NumPyが必要ということで、NumPyを少しだけ調べた。Numeric ⇒ Numarray ⇒ NumPyと進化した模様。NumPyの機能はSciPy(サイパイ)に包含されているそうだが、いまいち関係が分からない。早…

『Pythonクックブック』のメモ

リストを辞書にするイディオム 過去の日記で書いたネタで、自分が発見して大発見だと思っていたら、リスト L を辞書 d にするイディオムが"4.4 シーケンスのアイテムとそのインデックスをループ処理"に載っていた。イディオムは以下の通り。インデックスが非…

Webアプリ編登場!?

柴田さんの『みんなのPython Webアプリ編』が今月の30日(金)に出るらしい。特定のフレームワークでなくWebの一般的な内容っぽいので内容が気になるところ。

Pythonのハッキング

かなり面白そうな記事を見つけた。後でじっくり読むつもり。 dis/inspectモジュールとceval.cを使ったPythonのハッキング http://www.nasuinfo.or.jp/FreeSpace/kenji/sf/python/virtualMachine/PyVM.htm Visual モジュール VPython http://www.nasuinfo.or.…

はじめてのPython

『はじめてのPython』というPython本が工学社から出たらしい。Pythonは初心者向けの本が多いが、Django本や応用的な本が出て欲しい。

ulp

Pythonクイズ。以下を満たすnの値は何でしょうか? >>> n = ??? >>> n == n + 1 True 今日『Java Puzzlers』を読んでいて初めて知ったのだが、上記のようなnが存在する。これはPython言語特有のことではない。もちろん、こういうのを満たすクラスを作成しよ…

64bit OSの時代

先日Pythonの仕事のヘルプをしていたらMemory Errorという例外が発生した。その例外は初めて見たが、__slots__とgc.collect()を付け足すことで何とか回避できた。Pythonは大規模データを扱う場合、静的言語よりもパフォーマンスとメモリの面で不利になる可能…

gOS

本の虫: Google OSなるもの (http://cpplover.blogspot.com/2007/11/goole-os.html) 何やら面白そう。バージョン1.0.1とあったが完成度はどうなのだろう?

takeやdrop

d.y.d: ヘッドドロップ (http://www.kmonos.net/wlog/79.html#_2005071114) k.inabaさんのheadやdropをPythonでどう書けるか検討してみた。 from itertools import dropwhile, takewhile # Pythonで # Rubyの妄想で # 結果 [1,2,3,4,5][0] # [1,2,3,4,5].hea…

簡易的なデータベース

仕事で簡易的なDBを利用したくてPythonでできないか検討していた。MS AccessやSQLiteなどの外部のDBを利用しないでやる方法として直列化(serialize)で検討している。直列化の標準モジュールとして、marshal、pickle/cPickle、shelveがある。どれが良いのか検…

ディスクリプタ

ディスクリプタとは 代入、参照、削除を扱う属性を持ったオブジェクトをディスクリプタという。具体的には、__get__、__set__、__delete__のいずれかを定義したオブジェクトをディスクリプタという。ディスクリプタにより属性のデフォルトlookupの挙動を変更…

rest2html

PythonMatrixJp: reStructuredrestText実行ファイル (http://python.matrix.jp/projects/rst2html.html) Programmer's Gate: Effective Python (http://morchin.sakura.ne.jp/effective_python/index.html) nobonoboさんのrest2htmlを使ってEffective Python…

特異メソッド

nelnal@programming: インスタンスにメソッドを追加 (http://d.hatena.ne.jp/nelnal_programing/20071107/1194398329) プログラミング日記: 結合メソッドと非結合メソッド (http://d.hatena.ne.jp/morchin/20071013#p1) 特異メソッドできるんだあ!すばらし…

reStructuredText

今日、reStructuredTextフォーマットで書かれたテキストをdocutilsでHTMLに変換できることを知った。これだと結局ソースコードに色づけをしてくれないと思うので何か良い方法はないのだろうか?試してみたが、リストのサブリストを書くとリスト部分が<p ...>になる</p>…

NVIパターン

メモ。下のリンクのコメント欄のNVIパターンのところを後で勉強するつもり。 気になったネタリンク: 独自言語 続 (http://d.hatena.ne.jp/kanoke/20071105)

itertools.ifilter

itertools.ifilterはジェネレータを受け取ってジェネレータを返すことが可能。 4 TopCoder: Python - generatorで素数生成 (http://4topcoder.blogspot.com/2007/07/python-generator.html) 以下は上記のサイトでの素数を生成するサンプル。 >>> from iterto…

関数内ローカルな関数

常山日記経由で面白い記事を見つけた。 msshの日記: 関数内ローカルな関数が定義 (http://d.hatena.ne.jp/mssh/20071102) スコープは奥が深いし非常に重要な機能だと思うので、Pythonのスコープはいずれまとめたいと思っている。PythonはローカルになるがRub…

DSUとメモ化

DSUは結局、valueからkeyを取り出すfoo(value) ⇒ keyという関数があり、それをメモ化しているのと同じ意味だと思った。同じになるか実験してみた。 import time def memoize(func): D = {} def f(*args): if args in D: return D[args] res = func(*args) D[…