2007-01-01から1年間の記事一覧

エラーでなくワーニング (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[…

基本的なコントロール(1)

スタティックテキスト wx.StaticTextクラスを使用する シグネチャは、wx.StaticText(parent, id, label, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, name="staticText") 整列、フォント、色を変更可能 マウスイベントは受け取らない styleは以…

Effective Python

メタクラス (http://morchin.sakura.ne.jp/effective_python/metaclass.html) の記事を修正した。ほとんど自分用のメモ。 「メタクラスによるクラスの作成方法」の部分が新スタイルクラスのみの場合しか書いていないが、後で旧スタイルクラスも含めた完全版…

文字列結合

Perl使いのPythonちゃん: Perlで言う、join関数が使い難い (http://python.blog-slime.com/2007/07/perljoin.html) str.joinとフォーマット指定の時間をPython 2.5で比較してみた。2.5.1ではテストしていないが恐らく変わらないと思う。 >>> from timeit imp…

属性参照

通常の属性参照 x.nameでxの属性nameを参照した場合、以下の手順で検索される。 xがインスタンスオブジェクトの場合 'name'がx.__dict__のキーである場合、x.nameはx.__dict__['name']の値を返す。 それ以外の場合、x.nameは検索をxのクラスに委譲する(つま…

バベル案内

トラックバックをたどっていって面白いものを見つけた。たぶん有名な記事だと思う。気になったところをピックアップ。 バベル案内 (http://www.aoky.net/articles/steve_yegge/tour_de_babel.htm) 正直なところ、Schemeは最初に学ぶ言語としてはひどいものだ…

autoimp

Python Package Index: autoimp 1.0.2 (http://cheeseshop.python.org/pypi/autoimp/1.0.2) autoimpモジュールというのがあるらしい。from autoimp import *とすると、プログラムで使用されたモジュールを自動的にインポートしてくれるが、autoimpをインスト…

高階プログラミング

高階プログラミングの例が書かれていた。 sshi.Continual: 50年の歴史に秘められた高階プログラミングのヒミツ (http://d.hatena.ne.jp/sshi/20051005/p1) XMLHTTPRequestオブジェクトの作り方はブラウザによって違うので、その差を吸収するには、XMLHTTPReq…

黒魔術

Django勉強会に参加した人のブログで公開されていた資料を見ていて黒魔術という用語を初めて知った。 summary.pdf (http://python.charmr.org/static/document/2007/10/14/summary.pdf) 黒魔術というのは、どこの記述が動作に影響を与えているかがわからな…

optparse

コマンドライン引数の解析にはgetoptでなく、optparseを使おう。ということで、まとめ。 C:\temp>type opt.py import optparse parser = optparse.OptionParser(usage='%prog foo bar', version='%prog 1.0') parser.parse_args() C:\temp>python opt.py --v…

結合メソッドと非結合メソッド

クラスの属性を参照して関数オブジェクトを返す場合、結合メソッドオブジェクトもしくは非結合メソッドオブジェクトでラッピングして返す。結合メソッドは特定のインスタンスに関連付けられ、非結合メソッドは特定のインスタンスに関連付けらていないものと…