pytho****@googl*****
pytho****@googl*****
2011年 11月 8日 (火) 14:50:43 JST
3 new revisions: Revision: 7ce195dd0ec3 Author: Naoki INADA <inada****@klab*****> Date: Mon Nov 7 21:19:21 2011 Log: New 2.7.2: c-api/code.rst http://code.google.com/p/python-doc-ja/source/detail?r=7ce195dd0ec3 Revision: 9720daa398ed Author: Naoki INADA <inada****@klab*****> Date: Mon Nov 7 21:21:01 2011 Log: Update 2.7.2: c-api/concrete http://code.google.com/p/python-doc-ja/source/detail?r=9720daa398ed Revision: d090142b9179 Author: Naoki INADA <inada****@klab*****> Date: Mon Nov 7 21:28:53 2011 Log: Update 2.7.2: c-api/intro http://code.google.com/p/python-doc-ja/source/detail?r=d090142b9179 ============================================================================== Revision: 7ce195dd0ec3 Author: Naoki INADA <inada****@klab*****> Date: Mon Nov 7 21:19:21 2011 Log: New 2.7.2: c-api/code.rst http://code.google.com/p/python-doc-ja/source/detail?r=7ce195dd0ec3 Modified: /c-api/code.rst ======================================= --- /c-api/code.rst Fri Oct 28 23:01:19 2011 +++ /c-api/code.rst Mon Nov 7 21:19:21 2011 @@ -1,9 +1,8 @@ .. highlightlang:: c - .. _codeobjects: -Code Objects ------------- +コードオブジェクト +------------------- .. sectionauthor:: Jeffrey Yasskin <jyass****@gmail*****> @@ -11,40 +10,38 @@ .. index:: object: code -Code objects are a low-level detail of the CPython implementation. -Each one represents a chunk of executable code that hasn't yet been -bound into a function. +コードオブジェクト(Code objects)は CPython 実装の低レベルな詳細部分です。 +各オブジェクトは関数に束縛されていない実行可能コードの塊を表現しています。 .. ctype:: PyCodeObject - The C structure of the objects used to describe code objects. The - fields of this type are subject to change at any time. + コードオブジェクトを表現するために利用されるC構造体。 + この型のフィールドは何時でも変更され得ます。 .. cvar:: PyTypeObject PyCode_Type - This is an instance of :ctype:`PyTypeObject` representing the Python - :class:`code` type. + Python の :class:`code` 型を表現する :ctype:`PyTypeObject` のインスタン ス .. cfunction:: int PyCode_Check(PyObject *co) - Return true if *co* is a :class:`code` object + *co* が :class:`code` オブジェクトのときに真を返します。 .. cfunction:: int PyCode_GetNumFree(PyObject *co) - Return the number of free variables in *co*. + *co* 内の自由変数(free variables)の数を返します。 .. cfunction:: PyCodeObject *PyCode_New(int argcount, int nlocals, int stacksize, int flags, PyObject *code, PyObject *consts, PyObject *names, PyObject *varnames, PyObject *freevars, PyObject *cellvars, PyObject *filename, PyObject *name, int firstlineno, PyObject *lnotab) - Return a new code object. If you need a dummy code object to - create a frame, use :cfunc:`PyCode_NewEmpty` instead. Calling - :cfunc:`PyCode_New` directly can bind you to a precise Python - version since the definition of the bytecode changes often. + 新しいコードオブジェクトを返します。 + フレームを作成するためにダミーのコードオブジェクトが必要な場合は、代わり に + :cfunc:`PyCode_NewEmpty` を利用してください。 + バイトコードは頻繁に変更されるため、 :cfunc:`PyCode_New` を直接呼び出す と、 + Python の詳細バージョンに依存してしまうことがあります。 .. cfunction:: int PyCode_NewEmpty(const char *filename, const char *funcname, int firstlineno) - Return a new empty code object with the specified filename, - function name, and first line number. It is illegal to - :keyword:`exec` or :func:`eval` the resulting code object. + 新しい空のコードオブジェクトを、指定されたファイル名、関数名、開始行番号 で作成します。 + 返されたコードオブジェクトに対しての :keyword:`exec` や :func:`eval` は 許されていません。 ============================================================================== Revision: 9720daa398ed Author: Naoki INADA <inada****@klab*****> Date: Mon Nov 7 21:21:01 2011 Log: Update 2.7.2: c-api/concrete http://code.google.com/p/python-doc-ja/source/detail?r=9720daa398ed Modified: /c-api/concrete.rst ======================================= --- /c-api/concrete.rst Wed Mar 30 18:55:11 2011 +++ /c-api/concrete.rst Mon Nov 7 21:21:01 2011 @@ -97,9 +97,11 @@ descriptor.rst slice.rst weakref.rst + capsule.rst cobject.rst cell.rst gen.rst datetime.rst set.rst - + code.rst + ============================================================================== Revision: d090142b9179 Author: Naoki INADA <inada****@klab*****> Date: Mon Nov 7 21:28:53 2011 Log: Update 2.7.2: c-api/intro http://code.google.com/p/python-doc-ja/source/detail?r=d090142b9179 Modified: /c-api/intro.rst ======================================= --- /c-api/intro.rst Thu Jun 16 09:41:23 2011 +++ /c-api/intro.rst Mon Nov 7 21:28:53 2011 @@ -42,7 +42,7 @@ をソースコードに記述します。 この行を記述すると、標準ヘッダ: ``<stdio.h>``, ``<string.h>``, ``<errno.h>``, -``<limits.h>``, ``<stdlib.h>`` を (あれば) インクルードします。 +``<limits.h>``, ``<assert.h>``, ``<stdlib.h>`` を (利用できれば) インク ルードします。 .. note:: @@ -325,11 +325,18 @@ .. index:: single: PyErr_Occurred() -ところが、 C プログラマの場合、エラーチェックは常に明示的に行わねばなりませ ん。Python/C API の全ての関数は、関数のドキュメントで明確に -説明がない限り例外を発行する可能性があります。一般的な話として、ある関数が 何らかのエラーに遭遇すると、関数は -例外を送出して、関数内における参照の所有権を全て放棄し、エラー指標 (error indicator) --- 通常は *NULL* または ``-1`` -を返します。いくつかの関数ではブール型で真/偽を返し、偽はエラーを示します。 きわめて少数の関数では明確なエラー指標を返さなかったり、 -あいまいな戻り値を返したりするので、 :c:func:`PyErr_Occurred` で明示的にエ ラーテストを行う必要があります。 +ところが、 C プログラマの場合、エラーチェックは常に明示的に行わねばなりませ ん。 +Python/C API の全ての関数は、関数のドキュメントで明確に説明がない限り +例外を発行する可能性があります。 +一般的な話として、ある関数が何らかのエラーに遭遇すると、関数は例外を設定し て、 +関数内における参照の所有権を全て放棄し、エラー値(error indicator)を返しま す。 +ドキュメントに書かれてない場合、このエラー値は関数の戻り値の型にによって、 +*NULL* か ``-1`` のどちらかになります。 +いくつかの関数ではブール型で真/偽を返し、偽はエラーを示します。 +きわめて少数の関数では明確なエラー指標を返さなかったり、 +あいまいな戻り値を返したりするので、 :c:func:`PyErr_Occurred` で明示的に +エラーテストを行う必要があります。 +これらの例外は常に明示的にドキュメント化されます。 .. index:: single: PyErr_SetString() @@ -467,11 +474,12 @@ 土台となるモジュール :mod:`__builtin__`, :mod:`__main__`, :mod:`sys`, およ び :mod:`exceptions` を作成します。また、モジュール検索パス (``sys.path``) の初期化も行います。 -.. index:: single: PySys_SetArgv() - -:c:func:`Py_Initialize` の中では、 "スクリプトへの引数リスト" (script argument list, ``sys.argv`` -のこと) を設定しません。この変数が後に実行される Python コード中で必要な ら、 :c:func:`Py_Initialize` に続いて -``PySys_SetArgv(argc, argv)`` を呼び出して明示的に設定しなければなりませ ん。 +.. index:: single: PySys_SetArgvEx() + +:c:func:`Py_Initialize` の中では、 "スクリプトへの引数リスト" (script argument list, +``sys.argv`` のこと) を設定しません。 +この変数が後に実行される Python コード中で必要な ら、 :c:func:`Py_Initialize` の後で +``PySys_SetArgvEx(argc, argv, updatepath)`` を呼び出して明示的に設定しなけ ればなりません。 ほとんどのシステムでは (特に Unix と Windows は、詳細がわずかに異なりはしま すが)、 :c:func:`Py_Initialize` は標準の Python インタプリタ実行形式の場所に対する推定結果に基づいて、 Python のライ ブラリが Python インタプリタ実行形式からの相対パスで