gae アプリ 開発メモ

Google App Engine アプリの開発メモ / 言語: python, javascript / ビギナー

2012-04-01から1ヶ月間の記事一覧

blogの引越しを考え中

なんつーか、使いづらい。 Hatena blog。 ソースのカラー表示をしたい でも、はてなダイアリーは好みじゃない だけで選んだんだけど、不満が募ってきた。http://toc-gae-memo.blogspot.jp/ に引越しを画策中。 シンプルで自由度も高いのが決め手のポイントに…

codecsはいろいろ変換してくれる

標準エンコーディングを見ると、各種文字コードの他に quopri_codec (MIME quoted printable 形式) base64_codec (MIME base64) zlib_codec (gzip, zip 圧縮) bz2_codec (bz2 圧縮) hex_codec (バイトあたり 2 桁の 16 進数の表現) なんかも対応してる。超お…

絵文字ありのテキストファイルを処理する

ケータイメールのデータを処理するのに便利かな。ポイントは codecs の encoding に 'shift_jis' ではなく 'mbcs' を指定する点。 #!/usr/bin/env python # -*- coding: utf-8 -*- import codecs def main(): # fin = codecs.open('sample.txt', 'r', 'shift…

python 2.7の日本語ヘルプを構築する

ウチの環境(Windows 7 SP1 x64)では、Pythonドキュメント日本語翻訳プロジェクトで配布されている htmlhelp(.chm) はエラーが表示されて正常に動作しない。 なので、ドキュメントソースから構築してみた。 以下、手順。 準備 sphinxが必要。 Mercurialが必要…

日本語はいろいろ大変そう

ウチの環境(windows 7 x64 SP1)では python 2.7 の htmlhelp はエラーが出て表示ができない。 エラーの原因は、ヘルプの html が jquery.js を使うように書かれているのに、jquery.js を読み込んでないため。 他の方はエラーが出てないんだろうか? そもそも…

ダイアモンド継承とsuper()の続きの続き

ずっと、どこかで super() は継承元への型変換みたいな仕組みを提供してる と思い込んでた。 これが大きな間違いのはじまり。道理で、super()の文章を何度読んでも釈然としないわけだ。 動的な実行環境下での複数の継承の共同をサポートすることです。 この…

ダイアモンド継承とsuper()の続き

ダイアモンド継承とsuper()の続き super()の理解がまだ足りない 先程、【super()で C.talk() が呼び出されるように指定してみる】で class D(B, C): def talk(self): super(C, self).talk() # C を明示する def main(): d = D() d.talk() の結果は This is A…

ダイアモンド継承とsuper()

python 2.7 の話。 まずはダイアモンド継承を書く class A(object): def talk(self): print 'This is A.' class B(A): def talk(self): print 'This is B' class C(A): pass class D(B, C): pass def main(): d = D() d.talk() if __name__ == '__main__': m…

printでstderrに出力する

今までしらなかったので。 import sys print >> sys.stderr, 'abc'

プロパティの作り方

下の書き方、どちらでもOK。 #!/usr/bin/env python # -*- coding: utf-8 -*- class A(object): def __init__(self): self._x = 0 def get_val(self): return self._x def set_val(self, value): self._x = value value = property(get_val, set_val) class …

デコレータ

なんの気なしに @classmethod とか @staticmethod とか使っていたけど、なかなかの仕組みらしい。 デコレータとは Pythonの用語集(decorator)より。 (デコレータ) 関数を返す関数。 通常、 @wrapper という文法によって関数を変換するのに利用されます。 デ…

ファイルの読み込みと for~in

当たり前といえば、当たり前なんだけど。ファイルの読み込みで for~in を途中で break して、また同じファイルに for~in すると続きを読むことができる。 with open(filename, 'r') as source: for line in source: out.write(line) # 1 行目を出力 break;…

Pythonで継承元のメソッドを呼び出すには

伝統的な書き方 どんなメソッドを読んでいるのかが明示的。 class C(B): def method(self, arg): B.method(self, arg) super() を使用する なんか便利らしい。 要勉強。 class C(B): def method(self, arg): super(C, self).method(arg) 一時的なクラスオブ…

Python は関数を呼ぶコストがハンパない

テキストファイルを1バイトずつ走査するテストコードを書いてみた。 テストするテキストファイルのサイズは 6,811,956 バイト。まずは元のソース。 def main(): buffer = '' filei = open('sample.txt', 'r') while True: read_buffer = filei.read(0x2000) …

Python の日本語ドキュメントをchromeで検索

pythonしたりjavascriptしたりで、どうにも言語を覚えきれない。http://code.google.com/p/python-doc-ja/downloads/list から日本語のヘルプ(.chm)はダウンロードできるけど、javascriptが無効になってるみたいでスクリプトエラーが出てまともに機能しない…