
Monday, March 23, 2009
Wednesday, March 11, 2009
とうとうポメラを購入
去年さんざん迷った末に今まで購入を見合わせていたポメラ(白)を購入した。今いろいろイジって遊び中...

英語キーボードではないとか、ControlとCaps Lockを入れ替えられないとか、Emacsキーバインドじゃあないとか、いろいろ不満はあるものの、こういった製品は今これしかないことからすると仕方ないか。
とはいえ、前にも書いたとおり「良い割り切り」で本当に良い製品だと思う。

英語キーボードではないとか、ControlとCaps Lockを入れ替えられないとか、Emacsキーバインドじゃあないとか、いろいろ不満はあるものの、こういった製品は今これしかないことからすると仕方ないか。
とはいえ、前にも書いたとおり「良い割り切り」で本当に良い製品だと思う。
Python: zipサイコー
プログラムを書いていると、一つのループで複数のコンテナ型(配列やリスト)にアクセスしたいときがある。これまでは整数でループを回して、その整数を使って添え字アクセスをしていた。しかし、Pythonでzipを使えばもっとスマートになることが分かった。
こんな感じで簡単に使えるなんて、やっぱりPythonサイコー。
- a_list = ['a', 'b', 'c', 'd', 'e']
- b_list = ['A', 'B', 'C', 'D', 'E']
- zipped = zip(a_list, b_list)
- for x, y in zipped:
- print x, y # a, Aという組み合わせでe, Eまで表示される
a_list = ['a', 'b', 'c', 'd', 'e']
b_list = ['A', 'B', 'C', 'D', 'E']
zipped = zip(a_list, b_list)
for x, y in zipped:
print x, y # a, Aという組み合わせでe, Eまで表示される
こんな感じで簡単に使えるなんて、やっぱりPythonサイコー。
Saturday, March 07, 2009
Django: objects.get_or_create()
DjangoのModelを最近使っている。Modelでunique属性を有効にした場合、同じ属性を持つレコードをsave()するとIntegrityErrorが帰ってくるので、これまではこれをキャッチしてobjects.get()を実行し、最終的にインスタンスを取得していた。しかし、これだと一つのレコードで4,5行位は使ってしまう。
いろいろ調べてみると、objects.get_or_create()という関数があり、これはレコードが存在していれば取得し、無ければ作成する、というもの。これだと1行で簡単に上に書いた処理を実行することができる。
Django本のP.142のサンプルでは、この関数の戻り値が1つ(インスタンス)という記述になっているが、その後(インスタンス、レコード作成のTrue/False)という2つの戻り値に変更になっているようだ。
Djangoはすばらしいのだが、ネットや書籍の情報を見るときには、1.0対応かどうかを意識する必要がある。
いろいろ調べてみると、objects.get_or_create()という関数があり、これはレコードが存在していれば取得し、無ければ作成する、というもの。これだと1行で簡単に上に書いた処理を実行することができる。
Django本のP.142のサンプルでは、この関数の戻り値が1つ(インスタンス)という記述になっているが、その後(インスタンス、レコード作成のTrue/False)という2つの戻り値に変更になっているようだ。
Djangoはすばらしいのだが、ネットや書籍の情報を見るときには、1.0対応かどうかを意識する必要がある。
Subscribe to:
Posts (Atom)