Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright c 2004 Python Japan User's Group.
Lightweight Language Weekend ‘04
Python Language Update
Python
Language Update...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Agenda
• Python とは
– P...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Python とは?
〉〉
〉
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
$ python
Python 2.3.4 ...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Python はここが便利
インストールした...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
# coding: shift_jis
im...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Python はこんなところにも使われていま...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Language
Update
Update
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Python 2.4a2
(04/08/05...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Python 2.3 系列
2.2 系列以後...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Python 2.3 系列 (cnt’d)
...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Python 2.4 系列
リリース予定
•...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
未確定の機能
– 関数修飾子 (functi...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
その他
サードパーティモジュール
– モジュ...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
まとめ
Python は実は便利だ
Pyth...
Lightweight Language
Weekend ’04
Python Language Update
Copyright c 2004 Python Japan User's Group.
Acknowledgements and C...
Upcoming SlideShare
Loading in …5
×

Python languageupdate (2004)

300 views

Published on

This is an ancient talk of Python language updates (for 2.3-2.4) presented at LL weekend 2004.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Python languageupdate (2004)

  1. 1. Copyright c 2004 Python Japan User's Group. Lightweight Language Weekend ‘04 Python Language Update Python Language Update 2004.08.07 増田 泰  ( 日本 Python ユーザ 会 )
  2. 2. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Agenda • Python とは – Python の特徴 – ここが便利 – こんなことも ... • Language Update – Python の系譜 – Python 2.3 系列 – Python 2.4 系列 – その他 • まとめ
  3. 3. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Python とは? 〉〉 〉
  4. 4. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. $ python Python 2.3.4 (#53, May Type "help", "copyright 〉〉〉 print “Hello world” Hello world 〉〉〉  ... try: dh = probeDevice() except IOError: rollbackDevice() dh.operate() ... Python の特徴 Python はインタプリタです • 対話シェルやスクリプトからバイトコードを生成して 実行します オブジェクト指向プログラミングをサポートし ています • データや関数をオブジェクト (PyObject) として管理 します • クラスを他のクラスや組み込み型から導出したり自作 したりできます ものごとの多くを柔軟に,動的に決めます • 変数や関数の型を宣言しません • エラー処理は try… except で行います • 参照カウントに基づいてメモリを管理します ソースもバイナリも,無料で入手して利用でき ます *The “OSI certified” logo is trademark of Open Source Initiative.
  5. 5. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Python はここが便利 インストールしたらすぐ使えます : “Batteries Included” – 文法は単純で学びやすく,インデントでブロック構造をきれいに書 けます – さまざまな標準モジュールと開発環境を最初から使えます csv, os, socket, crypt, codecs, Tkinter, xml, etc… ドキュメントが充実しています – チュートリアルから言語仕様まで網羅した標準ドキュメントがあり ます – 標準ライブラリや機能拡張の提案 (PEP) はガイドラインに従って reStructuredText や TeX  で文書化されます – ML archive や豊富なレシピ集が Web 上にあります モジュールで高い拡張性を実現しています – Python だけでなく, C や C++ で高速な拡張モジュールを書けま す. – インタプリタや内部データ型を操作する API が公開されていて,他 のプログラムに Python を埋め込めます. Zen of Python c Python Delphi ObjC Py Py Py Py
  6. 6. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. # coding: shift_jis import wx app = wx.PySimpleApp(0) frame = wx.Frame(None, -1, u' 日本語表示 ') btn = wx.Button(frame, -1, u' パイソン python 牌尊 ') Python はこんなこともできます • クロスプラットフォームな GUI プログラムを 書けます – wxWidgets や Qt へのバインドがあり,国際化もで きます • 科学・工学分野のツールを呼び出せます – Numeric/numarray( 数値計算 ), Orange( 機械学習 ), Pyro ( ロボット ), biopython ( 情報生物学 ), NLTK ( 自 然言語処理 ), etc... • 画像処理や可視化を行えます – PIL ( 画像処理 ), ReportLab (PDF 生成 ), VTK ( 可視化 ライブラリ ), OpenGL, PyFX (cg), PyGame (SDL), etc... • スクリプトを実行形式にパッケージ化できます – Cx_Freeze (Unix/win32), py2exe (win32), .exe
  7. 7. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Python はこんなところにも使われています • 機能拡張言語として利用されています Blender3D, Poser (CG モデラ ), Gimp ( ペイント ), glucose (RSS リーダ ), OpenOffice.org ( プロダクティビティ ), etc... • 様々なアプリケーション開発に使われています – Zope (Web アプリケーションサーバ ), Chandler (PIM), Bittorrent (P2P ファイル共有 ), EVE (MMORPG) など • 携帯電話のプログラミング言語としても注目されていま す Nokia が Series60 の開発言語に Python を検討中 (04/02/11) • いくつかの実装系があります – Jython (Java – Java のライブラリを import できます ) – Stackless Python ( –スタックを使わない実装 実行状態を保存可 能 ) – Python for .Net (.Net framework –上の実装 まだ未完成 )
  8. 8. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Language Update Update
  9. 9. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Python 2.4a2 (04/08/05/) development Python/Jython の系譜 1990 1995 2000 0.9 1.0 1.3 1.5 1.5.2 2004 2.3 2.3.3 2.3.4 2.42.3.5 2005 1.6 1.6.1 2.0 2.1 2.0.1 2.2 2.1.3 2.2.2 2.2.3 1.0 1.1 2.0 2.1 Python 2.2a0 2.5~2.9 3.0~ Python 2.3.4 (04/05/27) current Python 2.2.3 (03/05/30) resting Jython 2.2a0 (03/07/31) development 2.2 ジェネレータ式 , CJKcodecs, decimal, 関数修飾子 2.5~(<=2.9): パフォーマンス,互換性重視の変更 3.0~ : 非互換の変更,モジュール配置の再考など 比較演算子の override List の内包表記 Unicode サポー ト イテレータ ジェネレータ , Bool 型,ソース文字コード認識 2.0 互換, Unicode サポート zxJDBC/DB-API, jar からのモジュール検索 2.2 互換 ( 組み込み型導出 ) Jython 2002 20042003 2005 2.4a1 2.4a2
  10. 10. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Python 2.3 系列 2.2 系列以後の新機能 – ジェネレータ (generator) – データ型の追加 • 組み込み Bool 型 (True/False): 真偽値を明示的に書けるように • Set 型 : 集合間の包含,結合,交差,差分などの操作を扱いやすく – ソースコードエンコーディング認識 ヘッダにエンコードを指定すると,リテラルを自動的にデコード – universal newline • プラットフォーム間の改行文字の違いを意識せずに テキストファイルを読める def fib(N): cur, prev = [1, 1] yield prev yield cur for i in range(N): cur, prev = [cur+prev, cur] yield cur • g = fib(...) でジェネレータ生成 • g.next() を呼ぶごとに,次の yield まで実行 • return 文,ブロックの末尾,例外で終了 ∴ g(N) → 1, 1, 2, 3, 5, 8... を返す. 逐次計算できる巨大な集合を効率的に表現
  11. 11. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Python 2.3 系列 (cnt’d) その他の機能追加 – インデクスループを書きやすく : enumerate() enumerate([a ,b, c, …]) (0, a), (1, b), (2, c), …→ を返す – CSV 形式を扱いやすく : csv (Excel や DB が出力する ) タブやカンマ区切りのデータを解釈 – zip ファイル内にモジュールを : zipimport zip ファイル中からモジュールを検索できる : パッケージ化に便利 2.3.3 (03/12/24) および 2.3.4 (04/05/27) – 機能追加なし, bugfix のみ – 2.3.4 では Win32 版に Tk Interface eXtension 追加 – 2.4 が主流になる前に 2.3.5 が出る(かもしれない) ?
  12. 12. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Python 2.4 系列 リリース予定 • alpha: 2.4a1 (2004/7/8), 2.4a2 (2004/8/5), 2.4a3 (2004/8/19?) • beta: 2004/8 ? • release: 2004/9 ? 2.3 以後の新機能 – ジェネレータを書きやすく : ジェネレータ式 (generator expression) 内包表記 [x*2 for x in range(10)] →   [1, 4, 9, 16, ...] に対して (x*2 for x in range(10)) は ( 値を一括生成せず ) ジェネレータを返す – リスト操作をもっと便利に : sorted()/reversed() • a.sort() や a.reverse() は a を返さない (a 自体を変更してしまうため ) • 並べ替え済みのコピーを返す sorted()/reversed() 追加 – 文字コード codec を充実 : CJK codecs の追加 日中韓文字コードの codec が標準配布物に取り込まれる – 通貨計算を扱いやすく : decimal モジュールの追加 10 進固定小数点数の正確な表現が可能に
  13. 13. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. 未確定の機能 – 関数修飾子 (function decorator) • 静的メソッドやクラスメソッドをもっと定義しやすくする • 構文の是非はまだ論議されているが, とにかく @ を使った構文が 2.4a2 で 導入された – 複数行にわたる import 文 Python 2.4 系列 class aClass: def func(args): ... func = staticmethod(func) class aClass: *decorator* func(args): ... >>> @staticmethod ... def func(a): ... return "hello decorator" ... >>> >>> func <staticmethod object at 0x00934870> >>> from mymod import (foo, bar, spam, bacon) ...
  14. 14. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. その他 サードパーティモジュール – モジュールインデクス PyPI: http://www.python.org/pypi/ 配布ツール distutils を使った登録や更新が可能に – Numeric は numarray へ • コードの見直しと機能追加 • SciPy や PyOpenGL など,序々に対応へ ドキュメント – 和訳プロジェクトによる標準ドキュメント和訳 2.3.3 訳了版リリース (2004/6/28 - まだ改善の余地あり.協力者求 む! ) PDF, info, HTML, Windows CHM 形式で配布中 – PEP やモジュールドキュメントなど,様々な関連文書の和訳 – Python クイックリファレンス
  15. 15. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. まとめ Python は実は便利だ Python makes joys of computing… !! ご静聴ありがとうございま した Python はこれからもっと便利になる 一緒に Python を便利にしてゆきましょう 本家 : http://www.python.org/ 日本 Python ユーザ会 : http://www.python.jp/ 日本 Python メーリングリスト : http://www.python.jp/mailman/listinfo/python-ml-jp ドキュメント和訳プロジェクト : http://www.python.jp/Zope/pythondoc_jp
  16. 16. Lightweight Language Weekend ’04 Python Language Update Copyright c 2004 Python Japan User's Group. Acknowledgements and Copyrights • ヘッダおよびフッタのアートワークは 柴田淳氏よりご提供いただきました . Copyright (c) 2004 Python Japan User's Group • 資料中に使われているクリップアートワークは, Microsoft OfficeOnline ク リップアートコレクションをもとに作成しました. 使用条件については http://office.microsoft.com/clipart/ をご覧ください. • その他クリップアートを使わない図形や写真,および本文テキストの著作権 は増田泰 (ymasuda at ethercube.com) および日本 Python ユーザ会に帰属 し,以下の条件で再配布および改変を認めます. Copyright Notice Copyright Yasushi Masuda, Python Japan User's Group, 2004 All Rights Reserved Permission to use, copy, modify, and distribute this product for any purpose and without fee is hereby granted, provided that above copyright notice and this permission notice is attached with every copies or distributions. Disclaimer Yasushi Masuda and Python Japan User's Group (together as the author hereafter) disclaims all warranties with regard to this product, including all implied warranties of merchantability and fitness, in no event the author shall be liable for any special, indirect or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whatever in an action pf contract, negligence or other tortious action, arising out of or in connection with the use or derivation of this product. The author makes any warranty, express or implied, or assumes any liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately-owned rights. Reference herein to any specific commercial products, process, or service by trade name, trademark, manufacturer, or otherwise, does not necessarily constitute or imply its endorsement, recommendation, or favoring by the author. The views and opinions of authors expressed herein do not necessarily state or reflect those of the author, and shall not be used for advertising or product endorsement purposes.

×