Python

Plone本

柴田さんの『Plone完全活用ガイド』が、今日発売らしい。次回の転職先はWeb系ではないので、Ploneを使う確率はかなり低い。但し、少し勉強したいのでとりあえずDjango本を読みたい。

メモ

偏った言語信者の垂れ流し: 再帰可能な回数の上限を変更する (http://d.hatena.ne.jp/nullpobug/20080607/1212846281)

メモ

ELECTROSTATIC DIARY (静電気日記) IS NOT BLOG: pkgutil (http://d.hatena.ne.jp/elecsta/20080604#p3) すばらしい。 import pkgutil [d[1] for d in pkgutil.iter_modules()]

名前と値

以前「名札モデルと箱モデル」という考え方を知ったが、名前と値で考えてみると要は、1つの名前に対して複数の値を付け替えることが可能かどうかがポイントである。逆に1つの値に複数の名前を付けられるというのは両者とも同じ。 Pythonで値に関して考えてみ…

Django本

偏った言語信者の垂れ流し: Django本がついに出るみたいだ (http://d.hatena.ne.jp/nullpobug/20080531) 最近忙しくて時間がない。出たらとりあえず中身だけ見たい…。

メモ

コロタエンヂニアリング: いろいろなPython (http://d.hatena.ne.jp/dai_yamashita/20080524#1211612642) 以下、他の追加も含めたリスト。他にも色々ありそう。 Stackless Python PyPy Jython IronPython tinypy PyMite Parallel Python Enthought Python

Scala勉強会@関東-1

登録が遅れて定員で結局参加できなかった。残念。資料がアップされていたので後で勉強するつもり。 Onion開発停滞日記: Scala勉強会@関東-1 終了 (http://d.hatena.ne.jp/kmizushima/20080511/1210439450)

inspectモジュールのまとめ

以下のページを読んだまとめ。リンクページは、例が載っておりよくまとまっているので、ここでは簡単にメソッドの説明をリストするのみとする。 PyMOTW:inspect (http://blog.doughellmann.com/2007/11/pymotw-inspect.html) getmoduleinfo() モジュール名、…

__hash__の意味

5月5日の自分の日記で、間違った情報を書いてしまった。 __hash__の意味は、「辞書のキーで同じものとして扱える条件を決めるためのもの」であるということ。 __hash__メソッドは、ハッシュ値を計算するメソッドで、以下の2段階でキーが同じものであるかを判…

メモ

以下のサイトを参考に、structモジュールとinspectモジュールをまとめるつもり。 Advanced Python Programming (http://www.xminc.com/mt/archives/pythontut2.html) PyMOTW:inspect (http://blog.doughellmann.com/2007/11/pymotw-inspect.html)

呼び出し元の名前の取得

常山日記経由でメモ。これはすばらしい。 Chris's Wiki: Finding the name of your caller in Python (http://utcc.utoronto.ca/~cks/space/blog/python/FindingCallersName) import inspect def getcallerinfo(): fr = inspect.currentframe() try: fr = fr…

メモ

yattの日記: pythonでバイナリダンプ (http://d.hatena.ne.jp/yatt/20080421/1208739036) 常山日記経由でメモ。使えそう。

マングリング

Countercode: ナンドクカ (http://d.hatena.ne.jp/pokarim/20080419#1208624326) Pythonには、アンダースコア二つ"__"から始まって、アンダースコア二つ"__"で終わらない名前の属性が、難読化される、というよくわからん仕様がある。 「アンダースコア2つで…

変数のフック

Gaucheで、式の前に#?=を付けると、実行中にその式の評価値を表示してくれるらしい。それをPythonで実現したくて変数のフックの方法を探していたが、見つからなかった。属性のフックや関数のフックはpropertyやデコレータで実現できるが、変数のフックの方法…

状態を変えないで状態を表現する

状態を変えないとは、a = a + 1 のような処理を禁止する。つまり、変数が初期化のみ可能で、再代入できないようなことを言う。関数型言語では、この性質を「純粋」であるという。 Pythonで、以下のforループはインデックス i の値が状態を変えながら、i*2 を…

ブロックを表現

関数型言語Cleanでは、以下のように、局所的な関数を定義できる。関数定義 where [局所関数定義] Cleanの // Clean add_square a b = a2 + b2 where a2 = a*a b2 = b*b は、Pythonでは以下のように表現できる。 >>> lambda a, b: [a2+b2 ... for a2 in [a*a]…

3.0a3

Pythonの以下のバージョンがリリースされたらしいが、調べる時間がない。3.0出たらしばらく安定して欲しいなあ。 2.5.2(final) 2.6alpha1 3.0alpha3

属性に関して

属性は以下で扱いが異なる。 クラス 関数、モジュール クラスは属性の扱いが特殊であるが、関数およびモジュールの属性は何も特殊化されない。クラスの属性は以下の特性を持つ。 関数を定義して参照するとメソッドに自動昇格する アンダースコアを先頭に2つ…

メタクラス

メタクラスに関してよくまとまっているのでメモ。後できちんと勉強するつもり。 時間城年代記 メタクラスで遊ぶ(1) (http://blog.livedoor.jp/kikwai/archives/51274308.html) メタクラスで遊ぶ(2) (http://blog.livedoor.jp/kikwai/archives/51280093.html)…

式と文

k.inabaさんの「一時変数のために使用している謎のforループを取り除く」というネタに反応した自分の2/19の日記のネタをさらに研究してみる。 Pythonでは式と文が明確に分かれている。Rubyは、「a = b」は式だが、Pythonでは文である。 Pythonの文には以下の…

Pythonでmixin

昨日のまとめ。 まずモジュールを利用する場合はモジュールに関して以下を知っておく必要がある。 sys.modules[module_name] = module_objで、モジュールを追加することができる。ここで、module_objには「属性を持ったオブジェクト」なら何でもOK。つまり、…

モジュールによるmixinの実現

Pythonでも実はRubyのmixinのようなことが可能である。 def mixin(template, mod_name): import new, sys m = new.module(mod_name) m.__dict__.update(**template()) sys.modules[mod_name] = m def template(): def foo(self): return 'foo' def bar(self,…

メモ

__setattr__ 定義内で、self.n = v 文は禁止。object.__setattr__(self, 'n', v) を使用。 sys.modules[__name__] = _const()。モジュールをクラスのインスタンスに置き換えて、ある機能を実現。

PyBuilder

図書館断想: デフォルトエンコーディング、py2exe (http://d.hatena.ne.jp/katz3/20080214/1203007014) py2exeのGUI版PyBuilderは使用したことないがpy2exe単体で何の不満もないのでとりあえず試してみたことない。何やらうまくいかない場合もあるようでとり…

リスト内包表記

d.y.d: 内包表記 (http://www.kmonos.net/wlog/82.html#_1753080218) リスト内包表記で一時変数を使用したいがために無駄なforループを1つ増やしているということだが、問題点は以下の3つ。 式しか書けないので代入文が書けない sys.stdinから読み取ってspli…

スコープの決定方法

とりあえず: [Python][お勉強] Python入門(33) - 変数がローカルスコープに属するかどうかの内部的判断 (http://atkonn.blogspot.com/2008/02/python-python33.html) ここまではローカルスコープに属するかどうかは「代入」した時点で決定するとのことだった…

CPython Extensions for IronPython

Matzにっき経由でメモ。 CPython用拡張モジュールをIronPythonから呼び出す (http://journal.mycom.co.jp/articles/2008/02/08/ironpython_cext/index.html) これでIronPythonも結構使えるようになりそう。やはりJythonよりIronPythonブームが来るのだろうか…

旧スタイルクラスと新スタイルクラス

『Pythonクックブック 第2版』の6章 オブジェクト指向プログラミングのイントロダクションを読んでいて重要な部分があったのでメモ。 従来のクラスではsuperは使えないので、多重継承を重要な用途で使うことは実質一切してはならない。..(snip).. たとえば…

2Dグラフィックライブラリ

id:Megumi221さんの日記で初めて知ったが、matplotlibという2Dグラフィック用のライブラリはかなりすごい。少し勉強してみようと思った。cairoを使用して簡単なツールは作成したことがあるが、matplotlilbの方が良さそう。最新版は0.91.2みたいだが、完成度…

デコレータ

Effective Python: デコレータ (http://morchin.sakura.ne.jp/effective_python/decorator.html) デコレータをまとめた。3.0のAnnotationsとの組み合わせは書いていないので後で追記するつもり。