2009年9月6日

Python札幌 第4回勉強会に行ってきた

2009/09/05にPython札幌の第4回勉強会が開かれた。今回は参加は5人。

Python関連読書会(Pyhton Tutorialを読む)

Pythonチュートリアルを読む。4. その他の制御フローツール4.7.6 ドキュメンテーション文字列まで。
(前回は長崎旅行で参加しなかったが、Python 札幌第3回 Ustream 参加 - 銀月の符号によると前回で既に4.6 関数を定義する まで進んでいたではないか。。)

  • Pythonにはswitchやcase文は存在しない。「誰が書いても同じ」なPythonとしてはelseifで対応できるから、ということなのだろうか。
  • for文でもelseが使える。反復処理が終了した後に処理される。
  • 使い道は?→検索して見つかったとき or 見つからなかったときの処理を書くのに便利では
  • 関数の定義def直後のコメントは__doc__で参照できる。
    >>> def test():
    ...     "this is test function"
    ...     pass
    >>> test.__doc__
    'this is test function'
  • 関数内で変数をglobalとして定義できてしまう!
  • returnが無い関数はNoneを返す

なにか作る

予定のPython-twitterモジュールの紹介は時間の都合で飛ばして、Djangoで何かを作ることに。今回はカウンターサイトとして、プラスリンクでインクリメント、マイナスリンクでデクリメントするアプリケーションを作った(後日手順をまとめる予定。あくまで予定)。ところどころリファクタリングも行いながら進めたのが面白かった。

一通り目的の機能が実装できた後、セッション毎に保持するよう改造が始まったが、用事があって途中で離脱。

ModelとしてCounterクラスを定義しIncrementメソッドを実装したが、そのメソッド内でsaveをするかしないかの話があった。

class Counter(models.Model):
    count = models.IntegerField(default=1)

    def increment(self):
        self.count += 1
        # saveするかしないか、あなたはどっち?
        self.save()

個人的には上記コードのように、incrementメソッド内でsaveしてしまうが、これは人によって考えの違いがでてくる部分かもしれない。

0 件のコメント:

コメントを投稿