# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: # tomo, 2020 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-04-10 22:51+0000\n" "PO-Revision-Date: 2019-09-01 03:42+0000\n" "Last-Translator: tomo, 2020\n" "Language-Team: Japanese (https://www.transifex.com/python-doc/teams/5390/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../../c-api/gcsupport.rst:6 msgid "Supporting Cyclic Garbage Collection" msgstr "循環参照ガベージコレクションをサポートする" #: ../../c-api/gcsupport.rst:8 msgid "" "Python's support for detecting and collecting garbage which involves " "circular references requires support from object types which are " "\"containers\" for other objects which may also be containers. Types which " "do not store references to other objects, or which only store references to " "atomic types (such as numbers or strings), do not need to provide any " "explicit support for garbage collection." msgstr "" "Python が循環参照を含むガベージの検出とコレクションをサポートするには、他のオブジェクトに対する \"コンテナ\" " "(他のオブジェクトには他のコンテナも含みます) " "となるオブジェクト型によるサポートが必要です。他のオブジェクトに対する参照を記憶しないオブジェクトや、(数値や文字列のような) アトム型 (atomic" " type) への参照だけを記憶するような型では、ガベージコレクションに際して特別これといったサポートを提供する必要はありません。" #: ../../c-api/gcsupport.rst:15 msgid "" "To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of " "the type object must include the :const:`Py_TPFLAGS_HAVE_GC` and provide an " "implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If " "instances of the type are mutable, a :c:member:`~PyTypeObject.tp_clear` " "implementation must also be provided." msgstr "" "コンテナ型を作るには、型オブジェクトの :c:member:`~PyTypeObject.tp_flags` フィールドに " ":const:`Py_TPFLAGS_HAVE_GC` フラグが立っており、 :c:member:`~PyTypeObject.tp_traverse`" " ハンドラの実装を提供しなければなりません。実装する型のインスタンスが変更可能な場合は、 " ":c:member:`~PyTypeObject.tp_clear` の実装も提供しなければなりません。" #: ../../c-api/gcsupport.rst:24 msgid "" "Objects with a type with this flag set must conform with the rules " "documented here. For convenience these objects will be referred to as " "container objects." msgstr "" "このフラグをセットした型のオブジェクトは、この節に述べた規則に適合しなければなりません。簡単のため、このフラグをセットした型のオブジェクトをコンテナオブジェクトと呼びます。" #: ../../c-api/gcsupport.rst:28 msgid "Constructors for container types must conform to two rules:" msgstr "コンテナ型のコンストラクタは以下の二つの規則に適合しなければなりません:" #: ../../c-api/gcsupport.rst:30 msgid "" "The memory for the object must be allocated using :c:func:`PyObject_GC_New` " "or :c:func:`PyObject_GC_NewVar`." msgstr "" "オブジェクトのメモリは :c:func:`PyObject_GC_New` または :c:func:`PyObject_GC_NewVar` " "で確保しなければなりません。" #: ../../c-api/gcsupport.rst:33 msgid "" "Once all the fields which may contain references to other containers are " "initialized, it must call :c:func:`PyObject_GC_Track`." msgstr "" "他のコンテナへの参照が入るかもしれないフィールドが全て初期化されたら、すぐに :c:func:`PyObject_GC_Track` " "を呼び出さなければなりません。" #: ../../c-api/gcsupport.rst:39 msgid "" "Analogous to :c:func:`PyObject_New` but for container objects with the " ":const:`Py_TPFLAGS_HAVE_GC` flag set." msgstr "" ":c:func:`PyObject_New` に似ていますが、 :const:`Py_TPFLAGS_HAVE_GC` " "のセットされたコンテナオブジェクト用です。" #: ../../c-api/gcsupport.rst:45 msgid "" "Analogous to :c:func:`PyObject_NewVar` but for container objects with the " ":const:`Py_TPFLAGS_HAVE_GC` flag set." msgstr "" ":c:func:`PyObject_NewVar` に似ていますが、 :const:`Py_TPFLAGS_HAVE_GC` " "のセットされたコンテナオブジェクト用です。" #: ../../c-api/gcsupport.rst:51 msgid "" "Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the " "resized object or ``NULL`` on failure. *op* must not be tracked by the " "collector yet." msgstr "" ":c:func:`PyObject_NewVar` が確保したオブジェクトのメモリをリサイズします。\n" "リサイズされたオブジェクトを返します。失敗すると ``NULL`` を返します。\n" "*op* はコレクタに追跡されていてはなりません。" #: ../../c-api/gcsupport.rst:57 msgid "" "Adds the object *op* to the set of container objects tracked by the " "collector. The collector can run at unexpected times so objects must be " "valid while being tracked. This should be called once all the fields " "followed by the :c:member:`~PyTypeObject.tp_traverse` handler become valid, " "usually near the end of the constructor." msgstr "" "オブジェクト *op* " "を、コレクタによって追跡されるオブジェクトの集合に追加します。コレクタは何回動くのかは予想できないので、追跡されている間はオブジェクトは正しい状態でいなければなりません。" " :c:member:`~PyTypeObject.tp_traverse` " "の対象となる全てのフィールドが正しい状態になってすぐに、たいていはコンストラクタの末尾付近で、呼び出すべきです。" #: ../../c-api/gcsupport.rst:66 msgid "" "A macro version of :c:func:`PyObject_GC_Track`. It should not be used for " "extension modules." msgstr ":c:func:`PyObject_GC_Track` のマクロ版です。拡張モジュールに使ってはなりません。" #: ../../c-api/gcsupport.rst:69 ../../c-api/gcsupport.rst:101 msgid "This macro is removed from Python 3.8." msgstr "このマクロは Python 3.8 から削除されます。" #: ../../c-api/gcsupport.rst:72 msgid "" "Similarly, the deallocator for the object must conform to a similar pair of " "rules:" msgstr "同様に、オブジェクトのメモリ解放関数も以下の二つの規則に適合しなければなりません:" #: ../../c-api/gcsupport.rst:75 msgid "" "Before fields which refer to other containers are invalidated, " ":c:func:`PyObject_GC_UnTrack` must be called." msgstr "" "他のコンテナを参照しているフィールドを無効化する前に、 :c:func:`PyObject_GC_UnTrack` を呼び出さなければなりません。" #: ../../c-api/gcsupport.rst:78 msgid "" "The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." msgstr "オブジェクトのメモリは :c:func:`PyObject_GC_Del` で解放しなければなりません。" #: ../../c-api/gcsupport.rst:83 msgid "" "Releases memory allocated to an object using :c:func:`PyObject_GC_New` or " ":c:func:`PyObject_GC_NewVar`." msgstr "" ":c:func:`PyObject_GC_New` や :c:func:`PyObject_GC_NewVar` を使って確保されたメモリを解放します。" #: ../../c-api/gcsupport.rst:89 msgid "" "Remove the object *op* from the set of container objects tracked by the " "collector. Note that :c:func:`PyObject_GC_Track` can be called again on " "this object to add it back to the set of tracked objects. The deallocator " "(:c:member:`~PyTypeObject.tp_dealloc` handler) should call this for the " "object before any of the fields used by the " ":c:member:`~PyTypeObject.tp_traverse` handler become invalid." msgstr "" "オブジェクト *op* を、コレクタによって追跡されるオブジェクトの集合から除去します。このオブジェクトに対して " ":c:func:`PyObject_GC_Track` を再度呼び出して、追跡されるオブジェクトの集合に戻すことも可能です。 " ":c:member:`~PyTypeObject.tp_traverse` ハンドラの対象となるフィールドが正しくない状態になる前に、デアロケータ " "(:c:member:`~PyTypeObject.tp_dealloc` ハンドラ) はオブジェクトに対して、この関数を呼び出すべきです。" #: ../../c-api/gcsupport.rst:98 msgid "" "A macro version of :c:func:`PyObject_GC_UnTrack`. It should not be used for" " extension modules." msgstr ":c:func:`PyObject_GC_UnTrack` のマクロ版です。拡張モジュールに使ってはなりません。" #: ../../c-api/gcsupport.rst:104 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function " "parameter of this type:" msgstr ":c:member:`~PyTypeObject.tp_traverse` ハンドラはこの型の関数パラメータを受け取ります:" #: ../../c-api/gcsupport.rst:109 msgid "" "Type of the visitor function passed to the " ":c:member:`~PyTypeObject.tp_traverse` handler. The function should be called" " with an object to traverse as *object* and the third parameter to the " ":c:member:`~PyTypeObject.tp_traverse` handler as *arg*. The Python core " "uses several visitor functions to implement cyclic garbage detection; it's " "not expected that users will need to write their own visitor functions." msgstr "" ":c:member:`~PyTypeObject.tp_traverse` ハンドラに渡されるビジター関数 (visitor function) " "の型です。この関数は、探索するオブジェクトを *object* として、 :c:member:`~PyTypeObject.tp_traverse` " "ハンドラの第 3 引数を *arg* として呼び出します。 Python " "のコアはいくつかのビジター関数を使って、ゴミとなった循環参照を検出する仕組みを実装します; " "ユーザが自身のためにビジター関数を書く必要が出てくることはないでしょう。" #: ../../c-api/gcsupport.rst:116 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler must have the following " "type:" msgstr ":c:member:`~PyTypeObject.tp_traverse` ハンドラは次の型を持っていなければなりません:" #: ../../c-api/gcsupport.rst:121 msgid "" "Traversal function for a container object. Implementations must call the " "*visit* function for each object directly contained by *self*, with the " "parameters to *visit* being the contained object and the *arg* value passed " "to the handler. The *visit* function must not be called with a ``NULL`` " "object argument. If *visit* returns a non-zero value that value should be " "returned immediately." msgstr "" "コンテナオブジェクトのためのトラバーサル関数 (traversal function) です。実装では、*self* " "に直接入っている各オブジェクトに対して *visit* 関数を呼び出さなければなりません。このとき、*visit* " "へのパラメタはコンテナに入っている各オブジェクトと、このハンドラに渡された *arg* の値です。*visit* 関数は ``NULL`` " "オブジェクトを引数に渡して呼び出してはなりません。*visit* " "が非ゼロの値を返す場合、エラーが発生し、戻り値をそのまま返すようにしなければなりません。" #: ../../c-api/gcsupport.rst:128 msgid "" "To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a " ":c:func:`Py_VISIT` macro is provided. In order to use this macro, the " ":c:member:`~PyTypeObject.tp_traverse` implementation must name its arguments" " exactly *visit* and *arg*:" msgstr "" ":c:member:`~PyTypeObject.tp_traverse` ハンドラを簡潔に書くために、 :c:func:`Py_VISIT` " "マクロが提供されています。このマクロを使うためには、 :c:member:`~PyTypeObject.tp_traverse` " "の実装関数の引数は、一文字も違わず *visit* と *arg* でなければなりません:" #: ../../c-api/gcsupport.rst:135 msgid "" "If *o* is not ``NULL``, call the *visit* callback, with arguments *o* and " "*arg*. If *visit* returns a non-zero value, then return it. Using this " "macro, :c:member:`~PyTypeObject.tp_traverse` handlers look like::" msgstr "" "*o* が ``NULL`` でなければ、 *o* と *arg* を引数にして *visit* コールバックを呼び出します。 *visit* " "がゼロでない値を返した場合、その値を返します。このマクロを使うと、 :c:member:`~PyTypeObject.tp_traverse` " "ハンドラは次のようになります::" #: ../../c-api/gcsupport.rst:148 msgid "" "The :c:member:`~PyTypeObject.tp_clear` handler must be of the " ":c:type:`inquiry` type, or ``NULL`` if the object is immutable." msgstr "" ":c:member:`~PyTypeObject.tp_clear` ハンドラは :c:type:`inquiry` 型であるか、オブジェクトが不変 " "(immutable) な場合は ``NULL`` でなければなりません。" #: ../../c-api/gcsupport.rst:154 msgid "" "Drop references that may have created reference cycles. Immutable objects " "do not have to define this method since they can never directly create " "reference cycles. Note that the object must still be valid after calling " "this method (don't just call :c:func:`Py_DECREF` on a reference). The " "collector will call this method if it detects that this object is involved " "in a reference cycle." msgstr "" "循環参照を形成しているとおぼしき参照群を放棄します。変更不可能なオブジェクトは循環参照を直接形成することが決してないので、この関数を定義する必要はありません。このメソッドを呼び出した後でもオブジェクトは有効なままでなければならないので注意してください" " (参照に対して :c:func:`Py_DECREF` " "を呼ぶだけにしないでください)。ガベージコレクタは、オブジェクトが循環参照を形成していることを検出した際にこのメソッドを呼び出します。"