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を参照してください。"
相対/絶対インポート (スコア:2, 参考になる)
個人的にはpep-328の相対/絶対importがうれしいなぁ
これで冗長なimport文書く必要が無くなる
自分のモジュールの中にtime.pyとかつくっちゃって嵌るのは誰しもが通る道だと勝手に思ってます。
あとは追加されたwsgirefモジュールが気になる。
Conditional Expressions (スコア:2, すばらしい洞察)
英語圏の人からは読みやすく見えるのかなぁ……。
"Complex is better than complicated."なのがPythonのいいところだと思っていたので、ちょっと残念です。
Re:Conditional Expressions (スコア:3, 興味深い)
A and B or C
と書くとがよくありました。
しかしこの場合、BがFalseとして評価される時にCが実行されてしまう、というわかりにくいバグを生む原因にもなっていました。
今回の三項演算子は、これの対策という意味もあると思います。
Re:Conditional Expressions (スコア:0)
Re:Conditional Expressions (スコア:1)
Re:Conditional Expressions (スコア:0)
とかしていた・・・
Re:Conditional Expressions (スコア: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")
みたいに条件がたくさん続く場合には読みやすいと思われ。
Re:Conditional Expressions (スコア:0)
perl じゃないんだから。
Re:Conditional Expressions (スコア:1, 興味深い)
読みにくいのは、この構文自体の根本的な美しくなさでしょう。
上の利用の仕方は、そのデメリットを、機能的なメリットで、多少なりとも挽回している感があります。
Re:Conditional Expressions (スコア:0)
Re:Conditional Expressions (スコア:0)
Re:Conditional Expressions (スコア:0)
Re:Conditional Expressions (スコア:1, 参考になる)
if condition:
x = true_value
else:
x = false_value
ではなく
x = true_value # デフォルト値
if condition:
x = false_value # 例外的な値
とすると納得いくのではないかな。
Re:Conditional Expressions (スコア:3, 参考になる)
Re:Conditional Expressions (スコア:0)
リスト内包表記もそうですが、自然言語としての英語的。
Re:Conditional Expressions (スコア:0)
同じく。
> 英語圏の人からは読みやすく見えるのかなぁ……。
どうでしょうかね? の方が英語圏の人にも分かりやすそうに思います。
推測ですが、「then」というキーワードを追加するのが嫌(変数名に使っている既存プログラムへ影響する)、conditionとtrue_valueの区切り文字に他に適切なものが無い、という理由から
に落ち着いたのだと思います。
Re:Conditional Expressions (スコア:2, 参考になる)
x = 1 if a > 0, otherwise x = 0
ですかね。elseなんて単語滅多に見ない。
Re:Conditional Expressions (スコア:0)
けどな。
互換性については、
・2.5 + from __future__ import および 2.6以降→エラー
・2.5 (from __future__ import なし)→警告
でどうか。
ちなみに colon は使えないの?
x = if cond1: val1 elif cond2: val2 else: val3
Re:Conditional Expressions (スコア:1, 興味深い)
「めったにない」かもしれないが「絶対にない」わけではないだろ?それが互換性を保つということだ。
「めったにない」から変えちまえ、というどこかの言語と一緒にしないでほしい。
> でどうか。
こんなとこで言って開発に反映されるわけないだろ?
Re:Conditional Expressions (スコア:0)
2.6で追加されたwithだって新しい予約語だろ?
http://docs.python.org/dev/whatsnew/pep-343.html
おなじみのやり方じゃだめなの?ってだけなんだが。
Re:Conditional Expressions (スコア:0)
Re:Conditional Expressions (スコア:0)
こう言う文法を許さないのがPythonだと思ってたけど。
何と比べて? (スコア:1, おもしろおかしい)
えぇと、裏を読まないのが大人……かな。
Pythonのトピックアイコン (スコア:0)
Re:Pythonのトピックアイコン (スコア:2, 興味深い)
PythonはMac由来なので。
このロゴは、昔のPythonのサイトで使われていたような記憶があります。
Re:Pythonのトピックアイコン (スコア:2, 参考になる)
2.5は、、、何も出ませんね。
それはともかくMac版IDLEは大分使いやすくなりました。
前はデフォルト設定ではできなかったヒストリ機能が使えるようになったり、
コマンド+Qで終了するようになったようだし。
あれ?終了しないぞ?
Re:Pythonのトピックアイコン (スコア:1)
これは初耳。というか違うと思う。
コマンドラインを持っていなかったMacで独自の言語が発達する余地はあまりなかったように思う。GUI特化型なら別だけど。
Re:Pythonのトピックアイコン (スコア:1)
# 一応、簡単に裏はとったのよ。
遡ると、0.9として公開された91年あたりでは IRIX と
Mac で開発されていたというのはすぐに確認できる。
ちなみに、System6以前でも言語はいっぱいあったよ。
というか、シェルだってプログラムなわけで。
Re:Pythonのトピックアイコン (スコア:1)
そりゃシェルだってプログラムだけどMacにゃシェルなんてなかったしなあ...
System6 以前のプログラム言語で Mac 独自なんてそんなにあったっけ?
MacBASIC とか MacPascal はそこそこ独自性はあったけど Python みたいにとんがってないし(プログミング環境は衝撃的だったけど)。
つーと当時の Python って Mac 用にコンソールでも持ってたのかなあ。聞いたことはないヨ!
Re:Pythonのトピックアイコン (スコア:1)
昔は、エディタでコード書いて、アイコンの上にドロップしていたような。
結果はダイアログに出ていたかな。
Re:Pythonのトピックアイコン (スコア:1)
でもドラッグ&ドロップが Mac でサポートされたのって System7 からだったような。というわけで若者も調べてみた(いや若者じゃないけどな)。
http://www.artima.com/intv/python4.html [artima.com]
このへん読むと,最初は Amoeba 用(!)に考えて,拡張性とマルチプラットフォームを考慮していたので,すぐに Mac や Windows に展開できたってことみたい。Mac 由来というより "最初からマルチプラットフォーム指向" が正しい感じ。なるほどねえ。
Re:Pythonのトピックアイコン (スコア:0)
つMPW Shell
Re:Pythonのトピックアイコン (スコア:1)
Re:Pythonのトピックアイコン (スコア:1)
http://www.python.org/doc/essays/foreword/ [python.org]
Re:Pythonのトピックアイコン (スコア:1)
……いや,からむつもりはありません。しかしそんな初期から Mac の実装があったとは知らなかったなあ。
Re:Pythonのトピックアイコン (スコア:0)
w
Re:Pythonのトピックアイコン (スコア:0)
リファレンスマニュアルにやたらIrix固有モノがあったよーな。
Re:Pythonのトピックアイコン (スコア:1, すばらしい洞察)
Re:Pythonのトピックアイコン (スコア:1)
代入 (スコア:0)