タグ

ブックマーク / imagawa.hatenadiary.jp (5)

  • 何段にも深くなるループを絶対に一段で書く方法 - 今川館

    ループの中でループを回す処理は読みにくい 例えば友達が5人いて、サンドイッチが3種類あって、2種類の飲み物を配る処理を作るとします。 こういう場合、for文を何段にもネストするプログラムを書かざるを得ないときがありますよね。 for friend in friends: for sandwich in sandwiches: for drink in drinks: do_something(friend, sandwich, drink) そもそも、こういうプログラムを書く前は、当にそういう処理で正しいのか考えた方がいいですが、とにかくこんなコードは読みにくいです。 ループの中でループを回すプログラムを字下げして書くことが読みにくさに寄与していると思うのですが、pythonだと字下げは必須なので悩ましいものです。 itertools.productを使えば絶対に1段で書ける しかし、こ

    何段にも深くなるループを絶対に一段で書く方法 - 今川館
    lanius
    lanius 2012/04/16
    itertools.product.
  • Pyramidでビューの設定をデコレータで定義する : FlaskのView Decoratorみたいなやつ - 今川館

    Pyramid, Python | 00:01view_configでビューの設定を決めるPyramidのビューはデコレータで設定を決めることもできる。FlaskのView Decoratorと似たようなことをしたい場合である。 from flask import Flask from werkzeug.routing import Rule app = Flask(__name__) app.url_map.add(Rule('/', endpoint='index')) @app.endpoint('index') def my_index(): return "Hello world" 引用 : View Decorators — Flask 0.8 documentationその際、以下の2つの手順を踏む。pyramid.views.view_configデコレータをビュー関数に付

  • Pyramidのサブルートの付け方: Djangoのurls.pyみたいなやつ - 今川館

    Pyramid, Python | 21:37PyramidでビューとURLのPathを紐づける方法PyramidでビューとURLのPathを紐づける為には以下の二つの手順を踏む。pyramid.config.Configurator.add_routeを呼んでルートの名前を登録する。pyramid.config.Configurator.add_viewを呼んで予め登録したルートの名前とビューを紐づける。コードを書くときはこんな感じになる。 from pyramid.config import Configurator from pyramid.response import Response config = Configurator() config.add_route("bucho", "/bucho") def show(request): return Response("Bu

  • dateutilのバージョンとpythonのバージョンに注意 - 今川館

    Python | 17:48python-datetutilをpython2.7で使うときは、 pip install "python-dateutilこのように1.xのものをインストールしないと動かない機能があるので注意。これを忘れてpython2.7で2.x系のdateutilをインストールして以下のコードを実行してみるとエラーになる。 import dateutil.parser as parser def main(): parser.parse("2011-12-03T18:00:00+09:00") if __name__ == "__main__": main() エラーメッセージとしてこういうものが出る。 TypeError: initial_value must be unicode or None, not str python3系ではdateutilの2系を使う。 p

  • minimockの使い方 - 今川館

    pythonのモックとしてminimockというライブラリがある。 日語のドキュメント・ブログが見当たらないので使い方をここに書いておく。 minimockを構成するモジュール mock関数 -- モックを当てる。 restore関数 -- 当てたモックを解除する。 Mockクラス -- mockより詳細にモックを当てるために使うオブジェクト。 mock関数とrestore関数でモックを当てる・解除するというのはわかりやすい。 しかし、複雑なケースではMockオブジェクトを使う必要があるのでここで説明する。 あと、minimockを使う上ではまりやすい点を書く。 基的な使い方 minimockの基は モックに差し替えるモジュールをインポートする。 mock関数を呼ぶ。或いはMockインスタンスを代入する。 使い終わったらrestoreで戻す。 である。 例えば、以下のphilosop

    minimockの使い方 - 今川館
    lanius
    lanius 2011/02/17
    モックライブラリ。
  • 1