ポインタなんてない

きっかけは以下のような変数名を使った事。 fp = csv.reader(filename) 「fpてファイルポインタの略だよね?pythonにポインタとか無いんですけどププーm9」たかが変数名されど変数名。 これがどこぞへ影響を与えるわけでも与えたわけでもないけど、知らなか…

ファイル内の行数をエレガントに数えたい

これもいいけど、 f = open("distribute_setup.py") len([None for l in f]) こうするとより速いらしい。 sum(1 for line in open('filename')) 参考:http://stackoverflow.com/questions/845058/how-to-get-line-count-cheaply-in-python社内の人達++

すごく久しぶりにはてだにアクセスした

ちまたではブログがどーのこーの言われてるけどあまり興味は沸かず。 日々、記憶に留めておける自信がないのでメモとか書き留めておきたいこととかを保存するものとして使用できりゃなんでもいい。

デコレーター:クラスメソッド @classmethod

とあるコードを読んでいると @classmethod というデコレータが出現。 調べたりしてみた。 # -*- coding: utf-8 -*- class Hey1: def hi(self, name): print "Hi, " + name + "!" print type(Hey1) # <type 'classobj'> print type(Hey1()) # <type 'instance'> print type(Hey1.hi) # <type 'isntancemethod> Hey1().h</type></type></type>…

文字列を切って繋げるのにどちらが早いか調べた

php

頻繁にこんなのに出会う。 「受け取った文字列 "20110801" を "2011-08-01" にする」 文字列を切ったり繋いだりするのに、どちらが早いのかなーと思って調べた。

迷ってみたり

php

例1 db =& $db; } function setName($name) { $this->name = $name; } function setPosition($position) { $this->position = $position; } function create() { // create } function destroy() { // destroy …

extends と implements のメモ

php

extends aa(); # A - aa $a->bb(); # B - bb ?> implements

test

ちょっくらテスト

コマンドプロンプトから .hgignore ファイルを作る

type nul > .hgignore

代入を試した

>>> text = 'ABC' >>> hogea, hogeb, hobec = text >>> hogea 'A' >>> hogeb 'B' >>> hogec 'C' >>> text = 'ABCD' >>> hogea, hogeb, hobec = text Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: too many values to unpack >>> ri</module></stdin>…

修正した

ずっと修正したくてたまらなかったものを修正した。指定したdatetime値でのfilter思い込みって怖い。

テストを自動化したくてModipyd使ってみた

さっきインストールしたModipydを実際に使ってみた。チュートリアルに従って動作させる。 Modipyd の自動テストツールを使ってみよう — Modipyd テストコード用意 テスト用ディレクトリ「C:\pytest\」作成。チュートリアルにあった2つのファイルを作成。 wid…

テストを自動化したくてModipydインストール

「python 自動テスト ツール」でググって1件目によさげなツールを発見。さっそくインストールした手順をメモ。 Modipyd のインストールに足りないツールがあった Modipyd のインストール自分の環境は windows なので ishikawa-modipyd-4ebdf28.zip をダウン…

同じ名前のパラメータをリストで受け取る

よくある「該当するものに全てチェックをつけてください」で値を受け取るというやつです。 フォーム <form method="post" action=""> 好きな天気は?<br> <input type="checkbox" name="choice" value="hare" checked>晴れ<br> <input type="checkbox" name="choice" value="kumori" checked>曇り<br> <input type="checkbox" name="choice" value="ame" checked>雨<br> </form>

GqlQueryクラス

http://code.google.com/intl/ja/appengine/docs/python/datastore/gqlqueryclass.html 「limit は必須の引数です。結果の数が不明のとき、クエリからすべての結果を得るには、fetch() メソッドを使用せずに GqlQuery オブジェクトを iterable として使用し…

最近、はてだからはてだへ引越しをしたので、前に書いていた方にもらっていたコメント等がない状態になってしまった。あちゃー前のはてだ http://d.hatena.ne.jp/Kmizukix/

現在の timestamp と microsecond をつなげた文字列が欲しい

これで何かをするわけではないが、必要になったので書いた。 import datetime import time def __get_timestr_by_now(): now = datetime.datetime.now() micro_str = str(now.microsecond).zfill(6) time_str = str(int(time.mktime(now.utctimetuple()))) r…

文字列比較

気になったので比較して結果を確認した。 # -*- encode: utf-8 -*- if u'0' < u'1': print '0 < 1' if u'1' < u'2': print '1 < 2' if u'2' < u'3': print '2 < 3' if u'3' < u'4': print '3 < 4' if u'4' < u'5': print '4 < 5' if u'5' < u'6': print '5 <…

同じ値を複数の変数に代入する

もしかして邪道なのかな。 st1 = 'a' st2 = 'b' st3 = st4 = st1 print st1 # => 'a' print id(st1) # => 26430944 print st2 # => 'b' print id(st2) # => 26431008 print st3 # => 'a' print id(st3) # => 26430944 print st4 # => 'a' print id(st4) # =>…

指定したdatetime値でのfilter(修正2010-03-02)

ユーザー一覧の表示でページ遷移などする時に fetch() を使おうとすると1000件の壁にぶち当たる。そこで datetime 値での filter を使用した。 こんなモデルがあったとする from google.appengine.ext import db class Member(db.Model): insert_datetime = …

管理したくないファイルを拡張子で指定

git

「*.pyc」ファイルは管理しなくていいだろ、ということで。 リポジトリに「.gitignore」ファイルを作成 「.gitignore」ファイルへ以下のように記載*/**/*.pyc コミット > cd C:\sample > echo '' > .gitignore ## .gitignore ファイル編集 ## Git 起動 $ cd …

git add した時に出る改行コードのwarning対応

ファイル内の改行コードが「LF」の際に出たワーニングに対応したメモ $ git add . warning: LF will be replaced by CRLF in appl/views.pyなにやら Git が改行コードを CRLF へ変更しようとするらしい。 で、以下を実行 $ git config --global core.autoCRL…

「addする」「コミットする」について

とりあえず ## sampleリポジトリへ移動 $ pwd /c/repos/sample ## app/sample.txt を編集 ## ここではファイル内に「sample」という文字を記載した ## ステータスを見る $ git status # On branch master # Changed but not updated: # (use "git add <file>..." t</file>…

Windows機にGit入れて使うメモと勉強したことメモ

インストール まずダウンロード。コマンドライン版を入れる。 msysgit - Project Hosting on Google Codeここの「Download」から「msysGit-fullinstall-1.6.4-preview20090729.exe」をダウンロード&インストール。どうでもいいがインストール中はぼーっとし…

int と bool であはん 〜isinstance()の罠〜

これはびっくりした。なのでメモ。 i = 123 isinstance(i, int) # => True a = True isinstance(a, int) # => True b = False isinstance(b, int) # => True c = 1 isinstance(c, int) # => True d = 0 isinstance(d, int) # => True えぇー! i = 123 isins…

久々に携帯web画面作成した

久々にテキスト入力フォームの「初期入力モードをアルファベットで指定する」なんて書いた。対応したのは Docomo , Ezweb , Softbank(Yahoo? Disney?) の3キャリア向けのXHTML。というわけでフォーム部分の記録を残す。 # For Docomo <form method="post" action="/login/" guid=ON> アカウント<br /> <input type="text" name="account" value="" style="-wap-input-format:&quot;*&lt;ja:en&gt;&quot;" /></form>

Mercurialもろもろインストール(1)

入れる環境は WindowsVista。参考にしたのはここMercurialでバージョン管理Mercurial本体を取得Download - Mercurial「Binary packages」→「Windows版」→「Mercurial-1.4.1 installer」をダウンロード。 インストール先は「C」直下にした。つづく

文字列の比較で疑問(4)

西尾さんに質問したら丁寧に解説してくれた。Pythonで2つの文字列がa == bだけどもnot(a is b)であるようなケース質問するに当たって確認された事は、対話的環境を使用したかどうか。答えはyes。というわけで試してみた。 対話型インタプリタとの会話 d1 = '…

文字列の比較で疑問(3)

疑問点が変わったけどこのタイトルのままで。 d1 = 'aaa' d2 = 'aaa' id(d1) # => 27605792 id(d2) # => 27605792 ふむ。で、ここから疑問。 d1 = 'a a' d2 = 'a a' id(d1) # => 27605856 id(d2) # => 27606080 えっなんで?

文字列の比較で疑問(2)

d1 = 'string' d2 = d1 'yes' if d1 == d2 else 'no' # => 'yes' 'yes' if d1 is d2 else 'no' # => 'yes' おっ?何かが見えてきたような気がする。[追記]気のせいだった。うーむ。