タグ

ブックマーク / kk6.hateblo.jp (5)

  • DjangoのモデルのManagerクラスのメソッドをメソッドチェインさせる - PYTHONIC BOOM BOOM HEAD

    ※追記:django-model-utils というパッケージの PassThroughManager が同じようなことしてくれるみたいです Model Managers — django-model-utils 2.3a1 documentation 例えば下記のような、書籍名・棚登録済みかのフラグ・出版日を持ったモデルクラスがあるとする from django.db import models class Book(models.Model): name = models.CharField(max_length=255) registered_flg = models.BooleanField(default=False) published_date = models.DateTimeField() ここで、「棚登録済みののみを抽出」とか「出版済みののみを抽出」とかしたい場

    DjangoのモデルのManagerクラスのメソッドをメソッドチェインさせる - PYTHONIC BOOM BOOM HEAD
  • pdbのデバッガコマンド - kk6のメモ帳*

    pythonとりあえず自分用に。あとでちゃんとまとめ直す...かも。コマンドh(elp) [command]コマンドのヘルプを表示引数なしで利用可能コマンド一覧を表示s(tep)一行実行(ステップイン)n(ext)一行実行(ステップオーバー)unt(il)(Python2.6から)行番号が現在行より大きくなるか、現在のフレームから戻るまで実行r(eturn)returnされるまで実行(ステップアウト)c(ontinue)次のブレークポイントまで実行j(ump) lineno次に実行する行を指定最も底のフレームでのみ実行可能forやfinallyなどの中には飛び込めないl(list) [first[, lastソースコードを表示引数なし 前後11行引数一つ その行から11行引数二つ 与えられた範囲行a(rgs)現在の関数の引数リストをプリントp expression現在のコンテキストでexp

  • DjangoでImageFieldを持つフォームのテスト - PYTHONIC BOOM BOOM HEAD

    DjangoでImageFieldを持ったFormがあるとします。こんな感じ。ModelFormでもいい(というか実際のコードはそっちで書いてる)。 class UploadForm(forms.Form): title = forms.CharField() photo = forms.ImageField() これをテストする際にStringIOで適当に作ったダミーをわせたら「画像じゃないよ!」って怒られた。ダミー画像をテスト用に置いておくのもなんだかなぁ…と思ってたら、そうだ、PIL使ってるんだからPILで生成すればいいじゃないか。 #-*- coding:utf-8 -*- import io from PIL import Image from django.test import TestCase from django.core.files.uploadedfile imp

    DjangoでImageFieldを持つフォームのテスト - PYTHONIC BOOM BOOM HEAD
  • インスタンスに動的にメソッドを追加する - PYTHONIC BOOM BOOM HEAD

    追記: 記事を公開してからおんなじような記事あったりするかなと思ってググったら2年前にIanさんがほとんど同じ内容書いてた。 Pythonでメソッドをクラスまたはインスタンスに動的に追加する - Ian Lewis しかも僕その記事はてブしてたよ… Interactive Shell で色々試してる時なんかにインスタンスにメソッドを追加したくなる時がある。 >>> class Person(object): ... def __init__(self, name): ... self._name = name ... >>> alice = Person("Alice") >>> bob = Person("Bob") こんなクラスがあって、幾つかインスタンスを作っているとする。で、self._nameを取得するメソッドが欲しくなったとしよう。 >>> def get_name(self)

    インスタンスに動的にメソッドを追加する - PYTHONIC BOOM BOOM HEAD
  • Pythonでカリー化と部分適用について考えてみる - PYTHONIC BOOM BOOM HEAD

    まず前提として、ちゃんと学ぶなら自動カリー化をサポートしてるhaskellなりOCamlなりF#なりで学ぶほうが断然いいと思います。 カリー化TLだったので 自分の理解が正しいかどうか再確認。 # こういう関数があるとする def multiply(x, y): return x * y # これがカリー化 curried_multiply = lambda x: lambda y: x * y print curried_multiply(2)(3) #-> 6 # lambda使わないならこう def curried_multiply_d(x): def _curried_multiply_d(y): return x * y return _curried_multiply_d print curried_multiply_d(2)(3) #-> 6 # こっちが部分適用 from

    Pythonでカリー化と部分適用について考えてみる - PYTHONIC BOOM BOOM HEAD
    tell-k
    tell-k 2012/08/23
    技術
  • 1