pytho****@googl*****
pytho****@googl*****
2011年 11月 5日 (土) 19:28:33 JST
Revision: bafc58784145 Author: Naoki INADA <inada****@klab*****> Date: Sat Nov 5 03:27:20 2011 Log: Update 2.7: functools, cookie, gzip http://code.google.com/p/python-doc-ja/source/detail?r=bafc58784145 Modified: /library/cookie.rst /library/functools.rst /library/gzip.rst ======================================= --- /library/cookie.rst Sat Nov 27 10:59:46 2010 +++ /library/cookie.rst Sat Nov 5 03:27:20 2011 @@ -224,8 +224,6 @@ >>> import Cookie >>> C = Cookie.SimpleCookie() - >>> C = Cookie.SerialCookie() - >>> C = Cookie.SmartCookie() >>> C["fig"] = "newton" >>> C["sugar"] = "wafer" >>> print C # generate HTTP headers @@ -234,28 +232,27 @@ >>> print C.output() # same thing Set-Cookie: fig=newton Set-Cookie: sugar=wafer - >>> C = Cookie.SmartCookie() + >>> C = Cookie.SimpleCookie() >>> C["rocky"] = "road" >>> C["rocky"]["path"] = "/cookie" >>> print C.output(header="Cookie:") Cookie: rocky=road; Path=/cookie >>> print C.output(attrs=[], header="Cookie:") Cookie: rocky=road - >>> C = Cookie.SmartCookie() + >>> C = Cookie.SimpleCookie() >>> C.load("chips=ahoy; vienna=finger") # load from a string (HTTP header) >>> print C Set-Cookie: chips=ahoy Set-Cookie: vienna=finger - >>> C = Cookie.SmartCookie() + >>> C = Cookie.SimpleCookie() >>> C.load('keebler="E=everybody; L=\\"Loves\\"; fudge=\\012;";') >>> print C Set-Cookie: keebler="E=everybody; L=\"Loves\"; fudge=\012;" - >>> C = Cookie.SmartCookie() + >>> C = Cookie.SimpleCookie() >>> C["oreo"] = "doublestuff" >>> C["oreo"]["path"] = "/" >>> print C Set-Cookie: oreo=doublestuff; Path=/ - >>> C = Cookie.SmartCookie() >>> C["twix"] = "none for you" >>> C["twix"].value 'none for you' @@ -269,6 +266,8 @@ >>> print C Set-Cookie: number=7 Set-Cookie: string=seven + >>> # SerialCookie と SmartCookie は非推奨です。 + >>> # これらを使うとセキュリティーホールができることがあります。 >>> C = Cookie.SerialCookie() >>> C["number"] = 7 >>> C["string"] = "seven" ======================================= --- /library/functools.rst Sat Nov 27 10:59:46 2010 +++ /library/functools.rst Sat Nov 5 03:27:20 2011 @@ -12,11 +12,59 @@ .. versionadded:: 2.5 -モジュール :mod:`functools` は高階関数、つまり関数に対する関数、あるいは他 の関数を返す関数、のためのものです。 +:mod:`functools` モジュールは高階関数、つまり関数に対する関数、あるいは他の 関数を返す関数、のためのものです。 一般に、どんな呼び出し可能オブジェクトでもこのモジュールの目的には関数とし て扱えます。 +.. seealso:: + + 最新バージョンの `functools の Python ソースコード + <http://svn.python.org/view/python/branches/release27-maint/Lib/functools.py?view=markup>`_ + モジュール :mod:`functools` では以下の関数を定義します。 +.. function:: cmp_to_key(func) + + 古いスタイルの比較関数を key 関数に変換します。 + key 関数を受け取る関数 (:func:`sorted`, :func:`min`, :func:`max`, :func:`heapq.nlargest`, + :func:`heapq.nsmallest`, :func:`itertools.groupby` など) と共に使用しま す。 + この関数は、主に比較関数をサポートしていない Python 3.x への移行のための ツールとして + 用意されています。 + + 比較関数は2つの引数を受け取り、それらを比較し、"より小さい" (less-than)の場合は負の値を、 + 同値の場合には 0 を、 "より大きい" (greater-than) 場合には正の値を返しま す。 + key 関数は1つの引数を受け取り、ある順序で並べた時の位置に相当する値を返 します。 + + 例:: + + sorted(iterable, key=cmp_to_key(locale.strcoll)) # ロケールに準拠し たソート順 + + .. versionadded:: 2.7 + +.. function:: total_ordering(cls) + + 1つ以上のリッチ順序比較メソッドを定義したクラスを受け取り、残りを実装す る + クラスデコレータ。 + このデコレータは全てのリッチ順序比較演算をサポートするための労力を軽減し ます。 + + The class must define one of :meth:`__lt__`, :meth:`__le__`, + :meth:`__gt__`, or :meth:`__ge__`. + In addition, the class should supply an :meth:`__eq__` method. + + 引数のクラス は、 :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, :meth:`__ge__` + の中からどれか1つと、 :meth:`__eq__` メソッドを定義する必要があります。 + + 例:: + + @total_ordering + class Student: + def __eq__(self, other): + return ((self.lastname.lower(), self.firstname.lower()) == + (other.lastname.lower(), other.firstname.lower())) + def __lt__(self, other): + return ((self.lastname.lower(), self.firstname.lower()) < + (other.lastname.lower(), other.firstname.lower())) + + .. versionadded:: 2.7 .. function:: reduce(function, iterable[, initializer]) ======================================= --- /library/gzip.rst Sat Mar 12 08:33:57 2011 +++ /library/gzip.rst Sat Nov 5 03:27:20 2011 @@ -42,7 +42,7 @@ このモジュールでは以下の項目を定義しています: -.. class:: GzipFile([filename[, mode[, compresslevel[, fileobj]]]]) +.. class:: GzipFile([filename[, mode[, compresslevel[, fileobj[, mtime]]]]]) :class:`GzipFile` クラスのコンストラクタです。 :class:`GzipFile` オブジェクトは :meth:`readinto` と @@ -76,6 +76,14 @@ ``1`` は最も高速で最小限の圧縮しか行いません。 ``9`` は最も低速ですが、最大限の圧縮を行います。デフォルトの値は ``9`` です。 + *mtime* 引数はオプションで、圧縮時にストリームに書かれる数値型のタイムス タンプです。 + :program:`gzip` で圧縮された全てのストリームはタイムスタンプを必要としま す。 + 省略された場合や ``None`` が渡された場合は、現在の時刻が利用されます。 + このモジュールは伸長時にはタイムスタンプを無視します が、 :program:`gunzip` + などのいくつかのプログラムはタイムスタンプを利用します。 + タイムスタンプのフォーマットは ``time.time()`` の戻り値や、 ``os.stat()`` + の戻り値となるオブジェクトの ``st_mtime`` メンバと同じです。 + 圧縮したデータの後ろにさらに何か追記したい場合もあるので、 :class:`GzipFile` オブジェクトの :meth:`close` メソッド呼び出しは *fileobj* をクローズしません。 @@ -84,7 +92,14 @@ :class:`StringIO` オブジェクトの :meth:`getvalue` メソッドを使って 書き込んだデータの入っているメモリバッファを取得することができます。 - :class:`GzipFile` はイテレーションをサポートします。 + :class:`GzipFile` はイテレーションと :keyword:`with` 文をサポートしま す。 + + .. versionchanged:: 2.7 + :keyword:`with` 構文のサポートが追加されました。 + + .. versionchanged:: 2.7 + zero-pad されたファイルのサポートが追加されました。 + .. function:: open(filename[, mode[, compresslevel]])