パスワードを忘れた? アカウント作成
13438 story

Python 2.5 リリース 41

ストーリー by yoosee
あいかわらず堅実なリリース 部門より

bravo曰く、"最近 IronPython 1.0 がリリースされたと思いきや、本家ももちろん手を抜いてはいません。9月19日に Python(CPython)バージョン2.5 がリリースされました。
従来のバージョンでは使えなかった try/except/finally ブロックを同時に使えるようになっていたり、三項演算子のような処理が追加された等、いくらかの拡張が行われているようです。詳細はWhat's New in Python 2.5を参照してください。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by shn (7678) on 2006年09月20日 17時28分 (#1022687) ホームページ
    http://docs.python.org/dev/whatsnew/pep-328.html [python.org]

    個人的にはpep-328の相対/絶対importがうれしいなぁ
    これで冗長なimport文書く必要が無くなる

    自分のモジュールの中にtime.pyとかつくっちゃって嵌るのは誰しもが通る道だと勝手に思ってます。

    あとは追加されたwsgirefモジュールが気になる。
  • Conditional Expressions (スコア:2, すばらしい洞察)

    by T.Sawamoto (4142) on 2006年09月20日 18時59分 (#1022726)
    if condition:
        x = true_value
    else:
        x = false_value
    x = true_value if condition else false_value
    と書けるわけですか。なんだかとても釈然としないんですけど(^^;)
    英語圏の人からは読みやすく見えるのかなぁ……。
    "Complex is better than complicated."なのがPythonのいいところだと思っていたので、ちょっと残念です。
    • by shn (7678) on 2006年09月20日 19時42分 (#1022744) ホームページ
      三項演算子的なことをするために今までは

      A and B or C

      と書くとがよくありました。
      しかしこの場合、BがFalseとして評価される時にCが実行されてしまう、というわかりにくいバグを生む原因にもなっていました。

      今回の三項演算子は、これの対策という意味もあると思います。
      親コメント
    • by Anonymous Coward on 2006年09月20日 20時40分 (#1022763)
      条件が1つだとイマイチありがたみが分かりませんが、

      q, r = divmod(n, 10)
      print "%d%s" % (n, "th" if q == 1 else "st" if r == 1 else "nd" if r == 2 else "rd" if r == 3 else "th")

      みたいに条件がたくさん続く場合には読みやすいと思われ。
      親コメント
    • by Anonymous Coward on 2006年09月20日 21時38分 (#1022796)
      考え方としては

              if condition:
                      x = true_value
              else:
                      x = false_value

      ではなく

              x = true_value # デフォルト値
              if condition:
                      x = false_value # 例外的な値

      とすると納得いくのではないかな。
      親コメント
    • by Anonymous Coward
      見やすくはないけど、読みやすくはあると思います。
      リスト内包表記もそうですが、自然言語としての英語的。
    • by Anonymous Coward
      > なんだかとても釈然としないんですけど

      同じく。

      > 英語圏の人からは読みやすく見えるのかなぁ……。

      どうでしょうかね?
      x = if condition then true_value else false_value
      の方が英語圏の人にも分かりやすそうに思います。
      推測ですが、「then」というキーワードを追加するのが嫌(変数名に使っている既存プログラムへ影響する)、conditionとtrue_valueの区切り文字に他に適切なものが無い、という理由から
      x = true_value if condition else false_value
      に落ち着いたのだと思います。
      • by giggs (8330) on 2006年09月21日 0時19分 (#1022949) 日記
        英語圏ではないですが、金融関係の契約文章でよく見るのは、

          x = 1 if a > 0, otherwise x = 0

        ですかね。elseなんて単語滅多に見ない。
        親コメント
      • by Anonymous Coward
        thenなんて変数やメソッドはめったにないと思う
        けどな。

        互換性については、

        ・2.5 + from __future__ import および 2.6以降→エラー
        ・2.5 (from __future__ import なし)→警告

        でどうか。

        ちなみに colon は使えないの?

        x = if cond1: val1 elif cond2: val2 else: val3
        • by Anonymous Coward on 2006年09月20日 21時28分 (#1022790)
          > thenなんて変数やメソッドはめったにないと思うけどな。

          「めったにない」かもしれないが「絶対にない」わけではないだろ?それが互換性を保つということだ。

          「めったにない」から変えちまえ、というどこかの言語と一緒にしないでほしい。

          > でどうか。

          こんなとこで言って開発に反映されるわけないだろ?
          親コメント
          • by Anonymous Coward
            ワロタ。いきがりすぎ。

            2.6で追加されたwithだって新しい予約語だろ?
            http://docs.python.org/dev/whatsnew/pep-343.html

            おなじみのやり方じゃだめなの?ってだけなんだが。
    • by Anonymous Coward
      同感。なんかPerlみたい。
      こう言う文法を許さないのがPythonだと思ってたけど。
  • 何と比べて? (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2006年09月20日 16時43分 (#1022666)
    > あいかわらず堅実なリリース部門より

    えぇと、裏を読まないのが大人……かな。

  • by Anonymous Coward on 2006年09月20日 16時47分 (#1022668)
    ファミコンのドット絵みたいな荒さなのはなにかわけあっての事なんですかね?
  • by Anonymous Coward on 2006年09月21日 11時58分 (#1023223)
    代入も式にしてほしいな。
typodupeerror

アレゲはアレゲを呼ぶ -- ある傍観者

読み込み中...