1. メソッドをクラスメソッドにするときは、デコレータを使う あるメソッドをクラスメソッドにするとき、 Python ではデコレータを使うことができる。 2.1 組み込み関数 によると、(太字は引用者による) classmethod( function) function のクラスメソッドを返します。 クラスメソッドは、インスタンスメソッドが暗黙の第一引数としてインスタンスをとるように、第一引数としてクラスをとります。クラスメソッドを宣言するには、以下の書きならわしを使います: class C: @classmethod def f(cls, arg1, arg2, ...): ... ふーむ、ここでも第一引数が必須で、それがクラスを参照するということか。Python のこういう書き方は、最初とっつきにくいと感じた。 (+_+) デコレータの書き方としては、関数の前に @classmeth
PySqlite PySqlite is a Python binding for the SQLite light-weight database engine, which is Trac's default DatabaseBackend. Installation The short version If you are using Python 2.5 and up, you already have a working version of pysqlite 2, bundled as sqlite3. If you are using an older version of Python or you would like to benefit from the latest version of pysqlite, grab Windows installer or t
Python 3 の数値をバイト列に変換する方法は bytes([i])*1。いままでとあきらかに違うことを知ったのが発端。 >>> bytes([97]) b'a' ユニコード文字列、バイト列の違いを調査開始。 型の名称とリテラル表記 Python 2.6 は新旧両方の書き方ができるものも。 Python 2.5以前 Python 2.6 Python 3.0 and 3.1 ユニコード文字列型 unicode unicode str バイト列型 str str or bytes*2 bytes 可変バイト列型 (なし)*3 bytearray bytearray ユニコードリテラル u'a' u'a'*4 'a' バイトリテラル 'a' 'a' or b'a'*5 b'a' メソッド メソッド関連は大差ない。 Python 3 では Python 2 の string.maketran
Unicode の文字列をソースコードに埋め込む方法 Unicode の文字列をソースコードに埋め込む場合、直接 UTF-8 などで文字列を書く方法と、\uXXXX などのようにエスケープして表記する方法があります。後者の方法についてまとめてみました。 \uXXXX 形式の場合 Java, JavaScript, Python, C++, C (C99から) などの多くの言語では \uXXXX という表記 (universal character names) でUnicode の文字を文字列の中に埋め込めます。たとえば、「あいう」は "\u3042\u3044\u3046" となります。 \uXXXX で埋め込んだ文字がどのように解釈されるかは言語や処理系によって異なります。 gcc/g++ の場合、 -fexec-charset オプションで、実際に使う文字セット・エンコーディングを指
benjyo ni import de AOP wo kakeru sample ga kaiteattayo! もっと黒魔術的にAOP。 importするモジュールに対してAOPしてみる。 例はモジュール内のクラスの"__"から始まってないメソッドに対しロギングする。 weave.py import sys, types class LoggerAspect(object): def __init__(self, method): self.method = method def before(self): print 'entering', self.method def after(self, retval, exc): print 'retvale', retval print 'leaving', self.method def weave_method(method, advi
2009年6月5日 Pythonによるデザインパターン 『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)を読みました。 私はPythonでばっかり遊んでいるのですが、PythonとRubyとは基本は同じ機能のように見えるので、Pythonによるデザインパターンに翻訳してみようと思います。 まず、デザインパターンの原則から 変わるものを変わらないものから分離する インターフェイスに対してプログラムし、実装に対して行わない 継承より集約 委譲、委譲、委譲 必要になるまで作るな(これは「Rubyによる~」の筆者による) これって、プログラミング全般に通じるものがあるようにも感じます。 Template Method Strategy Observer Composite Iterator Command Adapter Proxy 似た趣旨のブログ tachi
PyDevはEclipsのPython用プラグイン。 これをつかってTracのPlugin開発をしてみる。 前提ソフトは以下のもの。他のバージョンで動くかどうかは不明。 Windows Vista JDK1.6 Eclipse Version: 3.3.1.1 Build id: M20071023-1652 Python 2.5 Trac 0.11dev-r5883 とりあえず上のものは、インストールされており、動くこと。 tracも、プロジェクトをつくり、tracdで動く状態にしておく。 まず、Eclipsを起動し、PyDevをインストールする。 メニューのウィンドウ→ヘルプ→ソフトウェアの更新→検索およびインストール...。 ダイアログが出るので、「インストールする紳士フィーチャーを検索」を選択して「次へ>」。 「新規リモート・サイト」を押して以下のように入力。 その後、インストール
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く