GitHub Viewer
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001 Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR , YEAR.
#
# Translators:
# python-doc bot, 2025
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.15\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-09-29 18:58+0000\n"
"PO-Revision-Date: 2025-09-16 00:00+0000\n"
"Last-Translator: python-doc bot, 2025\n"
"Language-Team: Japanese (https://app.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/structures.rst:6
msgid "Common Object Structures"
msgstr "共通のオブジェクト構造体 (common object structure)"
#: ../../c-api/structures.rst:8
msgid ""
"There are a large number of structures which are used in the definition of "
"object types for Python. This section describes these structures and how "
"they are used."
msgstr ""
"Python では、オブジェクト型を定義する上で数多くの構造体が使われます。この節で"
"は三つの構造体とその利用方法について説明します。"
#: ../../c-api/structures.rst:14
msgid "Base object types and macros"
msgstr ""
#: ../../c-api/structures.rst:16
msgid ""
"All Python objects ultimately share a small number of fields at the "
"beginning of the object's representation in memory. These are represented "
"by the :c:type:`PyObject` and :c:type:`PyVarObject` types, which are "
"defined, in turn, by the expansions of some macros also used, whether "
"directly or indirectly, in the definition of all other Python objects. "
"Additional macros can be found under :ref:`reference counting "
"`."
msgstr ""
#: ../../c-api/structures.rst:26
msgid ""
"All object types are extensions of this type. This is a type which contains "
"the information Python needs to treat a pointer to an object as an object. "
"In a normal \"release\" build, it contains only the object's reference count "
"and a pointer to the corresponding type object. Nothing is actually declared "
"to be a :c:type:`PyObject`, but every pointer to a Python object can be cast "
"to a :c:expr:`PyObject*`."
msgstr ""
#: ../../c-api/structures.rst:33
msgid ""
"The members must not be accessed directly; instead use macros such as :c:"
"macro:`Py_REFCNT` and :c:macro:`Py_TYPE`."
msgstr ""
#: ../../c-api/structures.rst:36
msgid ""
"In the :ref:`Stable ABI ` for Free-Threaded Builds (``abi3t``), "
"this struct is opaque; its size and layout may change between Python "
"versions. In Stable ABI for non-free-threaded builds (``abi3``), the :c:"
"member:`!ob_refcnt` and :c:member:`!ob_type` fields are available, but using "
"them directly is discouraged."
msgstr ""
#: ../../c-api/structures.rst:45
msgid ""
"The object's reference count, as returned by :c:macro:`Py_REFCNT`. Do not "
"use this field directly; instead use functions and macros such as :c:macro:`!"
"Py_REFCNT`, :c:func:`Py_INCREF` and :c:func:`Py_DecRef`."
msgstr ""
#: ../../c-api/structures.rst:49
msgid ""
"The field type may be different from ``Py_ssize_t``, depending on build "
"configuration and platform."
msgstr ""
#: ../../c-api/structures.rst:54
msgid ""
"The object's type. Do not use this field directly; use :c:macro:`Py_TYPE` "
"and :c:func:`Py_SET_TYPE` instead."
msgstr ""
#: ../../c-api/structures.rst:60
msgid ""
"A :ref:`per-object lock `, present only in the :term:`free-"
"threaded ` build (when :c:macro:`Py_GIL_DISABLED` is "
"defined)."
msgstr ""
#: ../../c-api/structures.rst:63
msgid ""
"This field is **reserved for use by the critical section API** (:c:macro:"
"`Py_BEGIN_CRITICAL_SECTION` / :c:macro:`Py_END_CRITICAL_SECTION`). Do "
"**not** lock it directly with ``PyMutex_Lock``; doing so can cause "
"deadlocks. If you need your own lock, add a separate :c:type:`PyMutex` "
"field to your object struct."
msgstr ""
#: ../../c-api/structures.rst:74
msgid ""
"An extension of :c:type:`PyObject` that adds the :c:member:`~PyVarObject."
"ob_size` field. This is intended for objects that have some notion of "
"*length*."
msgstr ""
#: ../../c-api/structures.rst:78
msgid ""
"As with :c:type:`!PyObject`, the members must not be accessed directly; "
"instead use macros such as :c:macro:`Py_SIZE`, :c:macro:`Py_REFCNT` and :c:"
"macro:`Py_TYPE`."
msgstr ""
#: ../../c-api/structures.rst:82
msgid ""
"In the :ref:`Stable ABI ` for Free-Threaded Builds (``abi3t``), "
"this struct is opaque; its size and layout may change between Python "
"versions. In Stable ABI for non-free-threaded builds (``abi3``), the :c:"
"member:`!ob_base` and :c:member:`!ob_size` fields are available, but using "
"them directly is discouraged."
msgstr ""
#: ../../c-api/structures.rst:91
msgid ""
"Common object header. Typically, this field is not accessed directly; "
"instead :c:type:`!PyVarObject` can be cast to :c:type:`PyObject`."
msgstr ""
#: ../../c-api/structures.rst:97
msgid ""
"A size field, whose contents should be considered an object's internal "
"implementation detail."
msgstr ""
#: ../../c-api/structures.rst:100
msgid "Do not use this field directly; use :c:macro:`Py_SIZE` instead."
msgstr ""
#: ../../c-api/structures.rst:102
msgid ""
"Object creation functions such as :c:func:`PyObject_NewVar` will generally "
"set this field to the requested size (number of items). After creation, "
"arbitrary values can be stored in :c:member:`!ob_size` using :c:macro:"
"`Py_SET_SIZE`."
msgstr ""
#: ../../c-api/structures.rst:107
msgid ""
"To get an object's publicly exposed length, as returned by the Python "
"function :py:func:`len`, use :c:func:`PyObject_Length` instead."
msgstr ""
#: ../../c-api/structures.rst:114
msgid ""
"This is a macro used when declaring new types which represent objects "
"without a varying length. The PyObject_HEAD macro expands to::"
msgstr ""
"可変な長さを持たないオブジェクトを表現する新しい型を宣言するときに使うマクロ"
"です。\n"
"PyObject_HEAD マクロは次のように展開されます::"
#: ../../c-api/structures.rst:117
msgid "PyObject ob_base;"
msgstr ""
#: ../../c-api/structures.rst:119
msgid "See documentation of :c:type:`PyObject` above."
msgstr "上にある :c:type:`PyObject` のドキュメントを参照してください。"
#: ../../c-api/structures.rst:124
msgid ""
"This is a macro used when declaring new types which represent objects with a "
"length that varies from instance to instance. The PyObject_VAR_HEAD macro "
"expands to::"
msgstr ""
"インスタンスごとに異なる長さを持つオブジェクトを表現する新しい型を宣言すると"
"きに使うマクロです。\n"
"PyObject_VAR_HEAD マクロは次のように展開されます::"
#: ../../c-api/structures.rst:128
msgid "PyVarObject ob_base;"
msgstr ""
#: ../../c-api/structures.rst:130
msgid "See documentation of :c:type:`PyVarObject` above."
msgstr "上にある :c:type:`PyVarObject` のドキュメントを参照してください。"
#: ../../c-api/structures.rst:135
msgid ""
"The base class of all other objects, the same as :class:`object` in Python."
msgstr ""
#: ../../c-api/structures.rst:140
msgid ""
"Test if the *x* object is the *y* object, the same as ``x is y`` in Python."
msgstr ""
#: ../../c-api/structures.rst:147
msgid ""
"Test if an object is the ``None`` singleton, the same as ``x is None`` in "
"Python."
msgstr ""
#: ../../c-api/structures.rst:155
msgid ""
"Test if an object is the ``True`` singleton, the same as ``x is True`` in "
"Python."
msgstr ""
#: ../../c-api/structures.rst:163
msgid ""
"Test if an object is the ``False`` singleton, the same as ``x is False`` in "
"Python."
msgstr ""
#: ../../c-api/structures.rst:171
msgid "Get the type of the Python object *o*."
msgstr ""
#: ../../c-api/structures.rst:173
msgid ""
"The returned reference is :term:`borrowed ` from *o*. Do "
"not release it with :c:func:`Py_DECREF` or similar."
msgstr ""
#: ../../c-api/structures.rst:176
msgid ""
":c:func:`Py_TYPE()` is changed to an inline static function. The parameter "
"type is no longer :c:expr:`const PyObject*`."
msgstr ""
#: ../../c-api/structures.rst:183
msgid ""
"Return non-zero if the object *o* type is *type*. Return zero otherwise. "
"Equivalent to: ``Py_TYPE(o) == type``."
msgstr ""
#: ../../c-api/structures.rst:191
msgid ""
"Set the type of object *o* to *type*, without any checking or reference "
"counting."
msgstr ""
#: ../../c-api/structures.rst:194
msgid ""
"This is a very low-level operation. Consider instead setting the Python "
"attribute :attr:`~object.__class__` using :c:func:`PyObject_SetAttrString` "
"or similar."
msgstr ""
#: ../../c-api/structures.rst:198
msgid ""
"Note that assigning an incompatible type can lead to undefined behavior."
msgstr ""
#: ../../c-api/structures.rst:200
msgid ""
"If *type* is a :ref:`heap type `, the caller must create a new "
"reference to it. Similarly, if the old type of *o* is a heap type, the "
"caller must release a reference to that type."
msgstr ""
#: ../../c-api/structures.rst:210
msgid "Get the :c:member:`~PyVarObject.ob_size` field of *o*."
msgstr ""
#: ../../c-api/structures.rst:212
msgid ""
":c:func:`Py_SIZE()` is changed to an inline static function. The parameter "
"type is no longer :c:expr:`const PyVarObject*`."
msgstr ""
#: ../../c-api/structures.rst:219
msgid "Set the :c:member:`~PyVarObject.ob_size` field of *o* to *size*."
msgstr ""
#: ../../c-api/structures.rst:226
msgid ""
"This is a macro which expands to initialization values for a new :c:type:"
"`PyObject` type. This macro expands to::"
msgstr ""
"新しい :c:type:`PyObject` 型のための初期値に展開するマクロです。このマクロは"
"次のように展開されます。 ::"
#: ../../c-api/structures.rst:229
msgid ""
"_PyObject_EXTRA_INIT\n"
"1, type,"
msgstr ""
#: ../../c-api/structures.rst:235
msgid ""
"This is a macro which expands to initialization values for a new :c:type:"
"`PyVarObject` type, including the :c:member:`~PyVarObject.ob_size` field. "
"This macro expands to::"
msgstr ""
#: ../../c-api/structures.rst:239
msgid ""
"_PyObject_EXTRA_INIT\n"
"1, type, size,"
msgstr ""
#: ../../c-api/structures.rst:244
msgid "Implementing functions and methods"
msgstr ""
#: ../../c-api/structures.rst:248
msgid ""
"Type of the functions used to implement most Python callables in C. "
"Functions of this type take two :c:expr:`PyObject*` parameters and return "
"one such value. If the return value is ``NULL``, an exception shall have "
"been set. If not ``NULL``, the return value is interpreted as the return "
"value of the function as exposed in Python. The function must return a new "
"reference."
msgstr ""
#: ../../c-api/structures.rst:255
msgid "The function signature is::"
msgstr "関数のシグネチャは次のとおりです ::"
#: ../../c-api/structures.rst:257
msgid ""
"PyObject *PyCFunction(PyObject *self,\n"
" PyObject *args);"
msgstr ""
#: ../../c-api/structures.rst:262
msgid ""
"Type of the functions used to implement Python callables in C with "
"signature :ref:`METH_VARARGS | METH_KEYWORDS `. "
"The function signature is::"
msgstr ""
#: ../../c-api/structures.rst:266
msgid ""
"PyObject *PyCFunctionWithKeywords(PyObject *self,\n"
" PyObject *args,\n"
" PyObject *kwargs);"
msgstr ""
#: ../../c-api/structures.rst:273
msgid ""
"Type of the functions used to implement Python callables in C with "
"signature :c:macro:`METH_FASTCALL`. The function signature is::"
msgstr ""
#: ../../c-api/structures.rst:277
msgid ""
"PyObject *PyCFunctionFast(PyObject *self,\n"
" PyObject *const *args,\n"
" Py_ssize_t nargs);"
msgstr ""
#: ../../c-api/structures.rst:283
msgid ""
"Type of the functions used to implement Python callables in C with "
"signature :ref:`METH_FASTCALL | METH_KEYWORDS `. The function signature is::"
msgstr ""
#: ../../c-api/structures.rst:287
msgid ""
"PyObject *PyCFunctionFastWithKeywords(PyObject *self,\n"
" PyObject *const *args,\n"
" Py_ssize_t nargs,\n"
" PyObject *kwnames);"
msgstr ""
#: ../../c-api/structures.rst:294
msgid ""
"Type of the functions used to implement Python callables in C with "
"signature :ref:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS `. The function signature is::"
msgstr ""
#: ../../c-api/structures.rst:298
msgid ""
"PyObject *PyCMethod(PyObject *self,\n"
" PyTypeObject *defining_class,\n"
" PyObject *const *args,\n"
" Py_ssize_t nargs,\n"
" PyObject *kwnames)"
msgstr ""
#: ../../c-api/structures.rst:309
msgid ""
"Structure used to describe a method of an extension type. This structure "
"has four fields:"
msgstr ""
"拡張型のメソッドを記述する際に用いる構造体です。この構造体には 4 つのフィール"
"ドがあります:"
#: ../../c-api/structures.rst:314
msgid "Name of the method."
msgstr ""
#: ../../c-api/structures.rst:316
msgid "A ``NULL`` *ml_name* marks the end of a :c:type:`!PyMethodDef` array."
msgstr ""
#: ../../c-api/structures.rst:320
msgid "Pointer to the C implementation."
msgstr ""
#: ../../c-api/structures.rst:324
msgid "Flags bits indicating how the call should be constructed."
msgstr ""
#: ../../c-api/structures.rst:328
msgid "Points to the contents of the docstring."
msgstr ""
#: ../../c-api/structures.rst:330
msgid ""
"The :c:member:`~PyMethodDef.ml_meth` is a C function pointer. The functions "
"may be of different types, but they always return :c:expr:`PyObject*`. If "
"the function is not of the :c:type:`PyCFunction`, the compiler will require "
"a cast in the method table. Even though :c:type:`PyCFunction` defines the "
"first parameter as :c:expr:`PyObject*`, it is common that the method "
"implementation uses the specific C type of the *self* object."
msgstr ""
#: ../../c-api/structures.rst:338
msgid ""
"The :c:member:`~PyMethodDef.ml_flags` field is a bitfield which can include "
"the following flags. The individual flags indicate either a calling "
"convention or a binding convention."
msgstr ""
#: ../../c-api/structures.rst:343
msgid "There are these calling conventions:"
msgstr ""
#: ../../c-api/structures.rst:347
msgid ""
"This is the typical calling convention, where the methods have the type :c:"
"type:`PyCFunction`. The function expects two :c:expr:`PyObject*` values. The "
"first one is the *self* object for methods; for module functions, it is the "
"module object. The second parameter (often called *args*) is a tuple object "
"representing all arguments. This parameter is typically processed using :c:"
"func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`."
msgstr ""
":c:type:`PyCFunction` 型のメソッドで典型的に使われる呼び出し規約です。関数"
"は :c:expr:`PyObject*` 型の引数値を二つ要求します。最初の引数はメソッドの "
"*self* オブジェクトです; モジュール関数の場合、これはモジュールオブジェクトで"
"す。第二のパラメタ (よく *args* と呼ばれます) は、全ての引数を表現するタプル"
"オブジェクトです。パラメタは通常、 :c:func:`PyArg_ParseTuple` や :c:func:"
"`PyArg_UnpackTuple` で処理されます。"
#: ../../c-api/structures.rst:357
msgid ""
"Can only be used in certain combinations with other flags: :ref:"
"`METH_VARARGS | METH_KEYWORDS `, :ref:"
"`METH_FASTCALL | METH_KEYWORDS ` and :ref:"
"`METH_METHOD | METH_FASTCALL | METH_KEYWORDS `."
msgstr ""
#: ../../c-api/structures.rst:365
msgid ":c:expr:`METH_VARARGS | METH_KEYWORDS`"
msgstr ""
#: ../../c-api/structures.rst:366
msgid ""
"Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. "
"The function expects three parameters: *self*, *args*, *kwargs* where "
"*kwargs* is a dictionary of all the keyword arguments or possibly ``NULL`` "
"if there are no keyword arguments. The parameters are typically processed "
"using :c:func:`PyArg_ParseTupleAndKeywords`."
msgstr ""
#: ../../c-api/structures.rst:375
msgid ""
"Fast calling convention supporting only positional arguments. The methods "
"have the type :c:type:`PyCFunctionFast`. The first parameter is *self*, the "
"second parameter is a C array of :c:expr:`PyObject*` values indicating the "
"arguments and the third parameter is the number of arguments (the length of "
"the array)."
msgstr ""
#: ../../c-api/structures.rst:385
msgid "``METH_FASTCALL`` is now part of the :ref:`stable ABI `."
msgstr ""
#: ../../c-api/structures.rst:390
msgid ":c:expr:`METH_FASTCALL | METH_KEYWORDS`"
msgstr ""
#: ../../c-api/structures.rst:391
msgid ""
"Extension of :c:macro:`METH_FASTCALL` supporting also keyword arguments, "
"with methods of type :c:type:`PyCFunctionFastWithKeywords`. Keyword "
"arguments are passed the same way as in the :ref:`vectorcall protocol "
"`: there is an additional fourth :c:expr:`PyObject*` parameter "
"which is a tuple representing the names of the keyword arguments (which are "
"guaranteed to be strings) or possibly ``NULL`` if there are no keywords. "
"The values of the keyword arguments are stored in the *args* array, after "
"the positional arguments."
msgstr ""
#: ../../c-api/structures.rst:406
msgid ""
"Can only be used in the combination with other flags: :ref:`METH_METHOD | "
"METH_FASTCALL | METH_KEYWORDS `."
msgstr ""
#: ../../c-api/structures.rst:412
msgid ":c:expr:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`"
msgstr ""
#: ../../c-api/structures.rst:413
msgid ""
"Extension of :ref:`METH_FASTCALL | METH_KEYWORDS ` supporting the *defining class*, that is, the class that "
"contains the method in question. The defining class might be a superclass of "
"``Py_TYPE(self)``."
msgstr ""
#: ../../c-api/structures.rst:418
msgid ""
"The method needs to be of type :c:type:`PyCMethod`, the same as for "
"``METH_FASTCALL | METH_KEYWORDS`` with ``defining_class`` argument added "
"after ``self``."
msgstr ""
#: ../../c-api/structures.rst:427
msgid ""
"Methods without parameters don't need to check whether arguments are given "
"if they are listed with the :c:macro:`METH_NOARGS` flag. They need to be of "
"type :c:type:`PyCFunction`. The first parameter is typically named *self* "
"and will hold a reference to the module or object instance. In all cases "
"the second parameter will be ``NULL``."
msgstr ""
#: ../../c-api/structures.rst:433
msgid ""
"The function must have 2 parameters. Since the second parameter is unused, :"
"c:macro:`Py_UNUSED` can be used to prevent a compiler warning."
msgstr ""
#: ../../c-api/structures.rst:439
msgid ""
"Methods with a single object argument can be listed with the :c:macro:"
"`METH_O` flag, instead of invoking :c:func:`PyArg_ParseTuple` with a "
"``\"O\"`` argument. They have the type :c:type:`PyCFunction`, with the "
"*self* parameter, and a :c:expr:`PyObject*` parameter representing the "
"single argument."
msgstr ""
#: ../../c-api/structures.rst:445
msgid ""
"These two constants are not used to indicate the calling convention but the "
"binding when used with methods of classes. These may not be used for "
"functions defined for modules. At most one of these flags may be set for "
"any given method."
msgstr ""
#: ../../c-api/structures.rst:455
msgid ""
"The method will be passed the type object as the first parameter rather than "
"an instance of the type. This is used to create *class methods*, similar to "
"what is created when using the :deco:`classmethod` built-in decorator."
msgstr ""
#: ../../c-api/structures.rst:465
msgid ""
"The method will be passed ``NULL`` as the first parameter rather than an "
"instance of the type. This is used to create *static methods*, similar to "
"what is created when using the :deco:`staticmethod` built-in decorator."
msgstr ""
#: ../../c-api/structures.rst:469
msgid ""
"One other constant controls whether a method is loaded in place of another "
"definition with the same method name."
msgstr ""
"もう一つの定数は、あるメソッドを同名の別のメソッド定義と置き換えるかどうかを"
"制御します。"
#: ../../c-api/structures.rst:475
msgid ""
"The method will be loaded in place of existing definitions. Without "
"*METH_COEXIST*, the default is to skip repeated definitions. Since slot "
"wrappers are loaded before the method table, the existence of a "
"*sq_contains* slot, for example, would generate a wrapped method named :meth:"
"`~object.__contains__` and preclude the loading of a corresponding "
"PyCFunction with the same name. With the flag defined, the PyCFunction will "
"be loaded in place of the wrapper object and will co-exist with the slot. "
"This is helpful because calls to PyCFunctions are optimized more than "
"wrapper object calls."
msgstr ""
#: ../../c-api/structures.rst:488
msgid ""
"The type object corresponding to Python C method objects. This is available "
"as :class:`types.BuiltinMethodType` in the Python layer."
msgstr ""
#: ../../c-api/structures.rst:494
msgid ""
"Return true if *op* is an instance of the :c:type:`PyCMethod_Type` type or a "
"subtype of it. This function always succeeds."
msgstr ""
#: ../../c-api/structures.rst:500
msgid ""
"This is the same as :c:func:`PyCMethod_Check`, but does not account for "
"subtypes."
msgstr ""
#: ../../c-api/structures.rst:506
msgid ""
"Turn *ml* into a Python :term:`callable` object. The caller must ensure that "
"*ml* outlives the :term:`callable`. Typically, *ml* is defined as a static "
"variable."
msgstr ""
#: ../../c-api/structures.rst:510
msgid ""
"The *self* parameter will be passed as the *self* argument to the C function "
"in ``ml->ml_meth`` when invoked. *self* can be ``NULL``."
msgstr ""
#: ../../c-api/structures.rst:514
msgid ""
"The :term:`callable` object's ``__module__`` attribute can be set from the "
"given *module* argument. *module* should be a Python string, which will be "
"used as name of the module the function is defined in. If unavailable, it "
"can be set to :const:`None` or ``NULL``."
msgstr ""
#: ../../c-api/structures.rst:520
msgid ":attr:`function.__module__`"
msgstr ""
#: ../../c-api/structures.rst:522
msgid ""
"The *cls* parameter will be passed as the *defining_class* argument to the C "
"function. Must be set if :c:macro:`METH_METHOD` is set on ``ml->ml_flags``."
msgstr ""
#: ../../c-api/structures.rst:531
msgid ""
"The type object corresponding to Python C function objects. This is "
"available as :class:`types.BuiltinFunctionType` in the Python layer."
msgstr ""
#: ../../c-api/structures.rst:537
msgid ""
"Return true if *op* is an instance of the :c:type:`PyCFunction_Type` type or "
"a subtype of it. This function always succeeds."
msgstr ""
#: ../../c-api/structures.rst:543
msgid ""
"This is the same as :c:func:`PyCFunction_Check`, but does not account for "
"subtypes."
msgstr ""
#: ../../c-api/structures.rst:549
msgid "Equivalent to ``PyCMethod_New(ml, self, module, NULL)``."
msgstr ""
#: ../../c-api/structures.rst:554
msgid "Equivalent to ``PyCMethod_New(ml, self, NULL, NULL)``."
msgstr ""
#: ../../c-api/structures.rst:559
msgid ""
"Get the function's flags on *func* as they were passed to :c:member:"
"`~PyMethodDef.ml_flags`."
msgstr ""
#: ../../c-api/structures.rst:562 ../../c-api/structures.rst:580
#: ../../c-api/structures.rst:600
msgid ""
"If *func* is not a C function object, this fails with an exception. *func* "
"must not be ``NULL``."
msgstr ""
#: ../../c-api/structures.rst:565
msgid ""
"This function returns the function's flags on success, and ``-1`` with an "
"exception set on failure."
msgstr ""
#: ../../c-api/structures.rst:571
msgid ""
"This is the same as :c:func:`PyCFunction_GetFlags`, but without error or "
"type checking."
msgstr ""
#: ../../c-api/structures.rst:577
msgid ""
"Get the function pointer on *func* as it was passed to :c:member:"
"`~PyMethodDef.ml_meth`."
msgstr ""
#: ../../c-api/structures.rst:583
msgid ""
"This function returns the function pointer on success, and ``NULL`` with an "
"exception set on failure."
msgstr ""
#: ../../c-api/structures.rst:589
msgid ""
"This is the same as :c:func:`PyCFunction_GetFunction`, but without error or "
"type checking."
msgstr ""
#: ../../c-api/structures.rst:595
msgid ""
"Get the \"self\" object on *func*. This is the object that would be passed "
"to the first argument of a :c:type:`PyCFunction`. For C function objects "
"created through a :c:type:`PyMethodDef` on a :c:type:`PyModuleDef`, this is "
"the resulting module object."
msgstr ""
#: ../../c-api/structures.rst:603
msgid ""
"This function returns a :term:`borrowed reference` to the \"self\" object on "
"success, and ``NULL`` with an exception set on failure."
msgstr ""
#: ../../c-api/structures.rst:609
msgid ""
"This is the same as :c:func:`PyCFunction_GetSelf`, but without error or type "
"checking."
msgstr ""
#: ../../c-api/structures.rst:614
msgid "Accessing attributes of extension types"
msgstr ""
#: ../../c-api/structures.rst:618
msgid ""
"Structure which describes an attribute of a type which corresponds to a C "
"struct member. When defining a class, put a NULL-terminated array of these "
"structures in the :c:member:`~PyTypeObject.tp_members` slot."
msgstr ""
#: ../../c-api/structures.rst:623
msgid "Its fields are, in order:"
msgstr ""
#: ../../c-api/structures.rst:627
msgid ""
"Name of the member. A NULL value marks the end of a ``PyMemberDef[]`` array."
msgstr ""
#: ../../c-api/structures.rst:630
msgid "The string should be static, no copy is made of it."
msgstr ""
#: ../../c-api/structures.rst:634
msgid ""
"The type of the member in the C struct. See :ref:`PyMemberDef-types` for the "
"possible values."
msgstr ""
#: ../../c-api/structures.rst:639
msgid ""
"The offset in bytes that the member is located on the type’s object struct."
msgstr ""
#: ../../c-api/structures.rst:643
msgid ""
"Zero or more of the :ref:`PyMemberDef-flags`, combined using bitwise OR."
msgstr ""
#: ../../c-api/structures.rst:647
msgid ""
"The docstring, or NULL. The string should be static, no copy is made of it. "
"Typically, it is defined using :c:macro:`PyDoc_STR`."
msgstr ""
#: ../../c-api/structures.rst:651
msgid ""
"By default (when :c:member:`~PyMemberDef.flags` is ``0``), members allow "
"both read and write access. Use the :c:macro:`Py_READONLY` flag for read-"
"only access. Certain types, like :c:macro:`Py_T_STRING`, imply :c:macro:"
"`Py_READONLY`. Only :c:macro:`Py_T_OBJECT_EX` (and legacy :c:macro:"
"`T_OBJECT`) members can be deleted."
msgstr ""
#: ../../c-api/structures.rst:660
msgid ""
"For heap-allocated types (created using :c:func:`PyType_FromSpec` or "
"similar), ``PyMemberDef`` may contain a definition for the special member "
"``\"__vectorcalloffset__\"``, corresponding to :c:member:`~PyTypeObject."
"tp_vectorcall_offset` in type objects. This member must be defined with "
"``Py_T_PYSSIZET``, and either ``Py_READONLY`` or ``Py_READONLY | "
"Py_RELATIVE_OFFSET``. For example::"
msgstr ""
#: ../../c-api/structures.rst:667
msgid ""
"static PyMemberDef spam_type_members[] = {\n"
" {\"__vectorcalloffset__\", Py_T_PYSSIZET,\n"
" offsetof(Spam_object, vectorcall), Py_READONLY},\n"
" {NULL} /* Sentinel */\n"
"};"
msgstr ""
#: ../../c-api/structures.rst:673
msgid "(You may need to ``#include `` for :c:func:`!offsetof`.)"
msgstr ""
#: ../../c-api/structures.rst:675
msgid ""
"The legacy offsets :c:member:`~PyTypeObject.tp_dictoffset` and :c:member:"
"`~PyTypeObject.tp_weaklistoffset` can be defined similarly using "
"``\"__dictoffset__\"`` and ``\"__weaklistoffset__\"`` members, but "
"extensions are strongly encouraged to use :c:macro:`Py_TPFLAGS_MANAGED_DICT` "
"and :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead."
msgstr ""
#: ../../c-api/structures.rst:683
msgid ""
"``PyMemberDef`` is always available. Previously, it required including "
"``\"structmember.h\"``."
msgstr ""
#: ../../c-api/structures.rst:688
msgid ""
":c:macro:`Py_RELATIVE_OFFSET` is now allowed for "
"``\"__vectorcalloffset__\"``, ``\"__dictoffset__\"`` and "
"``\"__weaklistoffset__\"``."
msgstr ""
#: ../../c-api/structures.rst:694
msgid ""
"Get an attribute belonging to the object at address *obj_addr*. The "
"attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` on error."
msgstr ""
#: ../../c-api/structures.rst:700
msgid ""
"``PyMember_GetOne`` is always available. Previously, it required including "
"``\"structmember.h\"``."
msgstr ""
#: ../../c-api/structures.rst:705
msgid ""
"Set an attribute belonging to the object at address *obj_addr* to object "
"*o*. The attribute to set is described by ``PyMemberDef`` *m*. Returns "
"``0`` if successful and a negative value on failure."
msgstr ""
#: ../../c-api/structures.rst:711
msgid ""
"``PyMember_SetOne`` is always available. Previously, it required including "
"``\"structmember.h\"``."
msgstr ""
#: ../../c-api/structures.rst:717
msgid "Member flags"
msgstr ""
#: ../../c-api/structures.rst:719
msgid "The following flags can be used with :c:member:`PyMemberDef.flags`:"
msgstr ""
#: ../../c-api/structures.rst:723
msgid "Not writable."
msgstr ""
#: ../../c-api/structures.rst:727
msgid ""
"Emit an ``object.__getattr__`` :ref:`audit event ` before "
"reading."
msgstr ""
#: ../../c-api/structures.rst:732
msgid ""
"Indicates that the :c:member:`~PyMemberDef.offset` of this ``PyMemberDef`` "
"entry indicates an offset from the subclass-specific data, rather than from "
"``PyObject``."
msgstr ""
#: ../../c-api/structures.rst:736
msgid ""
"Can only be used as part of the :c:data:`Py_tp_members` :c:type:`slot "
"` when creating a class using negative :c:member:`~PyType_Spec."
"basicsize`. It is mandatory in that case. When setting :c:member:"
"`~PyTypeObject.tp_members` from the slot during class creation, Python "
"clears the flag and sets :c:member:`PyMemberDef.offset` to the offset from "
"the ``PyObject`` struct."
msgstr ""
#: ../../c-api/structures.rst:751
msgid ""
"The :c:macro:`!RESTRICTED`, :c:macro:`!READ_RESTRICTED` and :c:macro:`!"
"WRITE_RESTRICTED` macros available with ``#include \"structmember.h\"`` are "
"deprecated. :c:macro:`!READ_RESTRICTED` and :c:macro:`!RESTRICTED` are "
"equivalent to :c:macro:`Py_AUDIT_READ`; :c:macro:`!WRITE_RESTRICTED` does "
"nothing."
msgstr ""
#: ../../c-api/structures.rst:762
msgid ""
"The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. The :c:"
"macro:`!PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The new "
"names are now always available. Previously, these required ``#include "
"\"structmember.h\"``. The header is still available and it provides the old "
"names."
msgstr ""
#: ../../c-api/structures.rst:771
msgid "Member types"
msgstr ""
#: ../../c-api/structures.rst:773
msgid ""
":c:member:`PyMemberDef.type` can be one of the following macros "
"corresponding to various C types. When the member is accessed in Python, it "
"will be converted to the equivalent Python type. When it is set from Python, "
"it will be converted back to the C type. If that is not possible, an "
"exception such as :exc:`TypeError` or :exc:`ValueError` is raised."
msgstr ""
#: ../../c-api/structures.rst:781
msgid ""
"Unless marked (D), attributes defined this way cannot be deleted using e.g. :"
"keyword:`del` or :py:func:`delattr`."
msgstr ""
#: ../../c-api/structures.rst:785
msgid "Macro name"
msgstr "マクロ名"
#: ../../c-api/structures.rst:785
msgid "C type"
msgstr "C の型"
#: ../../c-api/structures.rst:785
msgid "Python type"
msgstr "Python の型"
#: ../../c-api/structures.rst:787
msgid ":c:expr:`char`"
msgstr ":c:expr:`char`"
#: ../../c-api/structures.rst:787 ../../c-api/structures.rst:788
#: ../../c-api/structures.rst:789 ../../c-api/structures.rst:790
#: ../../c-api/structures.rst:791 ../../c-api/structures.rst:792
#: ../../c-api/structures.rst:793 ../../c-api/structures.rst:794
#: ../../c-api/structures.rst:795 ../../c-api/structures.rst:796
#: ../../c-api/structures.rst:797
msgid ":py:class:`int`"
msgstr ""
#: ../../c-api/structures.rst:788
msgid ":c:expr:`short`"
msgstr ":c:expr:`short`"
#: ../../c-api/structures.rst:789
msgid ":c:expr:`int`"
msgstr ":c:expr:`int`"
#: ../../c-api/structures.rst:790
msgid ":c:expr:`long`"
msgstr ":c:expr:`long`"
#: ../../c-api/structures.rst:791
msgid ":c:expr:`long long`"
msgstr ""
#: ../../c-api/structures.rst:792
msgid ":c:expr:`unsigned char`"
msgstr ":c:expr:`unsigned char`"
#: ../../c-api/structures.rst:793
msgid ":c:expr:`unsigned int`"
msgstr ":c:expr:`unsigned int`"
#: ../../c-api/structures.rst:794
msgid ":c:expr:`unsigned short`"
msgstr ":c:expr:`unsigned short`"
#: ../../c-api/structures.rst:795
msgid ":c:expr:`unsigned long`"
msgstr ":c:expr:`unsigned long`"
#: ../../c-api/structures.rst:796
msgid ":c:expr:`unsigned long long`"
msgstr ""
#: ../../c-api/structures.rst:797
msgid ":c:expr:`Py_ssize_t`"
msgstr ""
#: ../../c-api/structures.rst:798
msgid ":c:expr:`float`"
msgstr ":c:expr:`float`"
#: ../../c-api/structures.rst:798 ../../c-api/structures.rst:799
msgid ":py:class:`float`"
msgstr ""
#: ../../c-api/structures.rst:799
msgid ":c:expr:`double`"
msgstr ":c:expr:`double`"
#: ../../c-api/structures.rst:800
msgid ":c:expr:`char` (written as 0 or 1)"
msgstr ""
#: ../../c-api/structures.rst:800
msgid ":py:class:`bool`"
msgstr ""
#: ../../c-api/structures.rst:802
msgid ":c:expr:`const char *` (*)"
msgstr ""
#: ../../c-api/structures.rst:802 ../../c-api/structures.rst:803
msgid ":py:class:`str` (RO)"
msgstr ""
#: ../../c-api/structures.rst:803
msgid ":c:expr:`const char[]` (*)"
msgstr ""
#: ../../c-api/structures.rst:804
msgid ":c:expr:`char` (0-127)"
msgstr ""
#: ../../c-api/structures.rst:804
msgid ":py:class:`str` (**)"
msgstr ""
#: ../../c-api/structures.rst:805
msgid ":c:expr:`PyObject *`"
msgstr ""
#: ../../c-api/structures.rst:805
msgid ":py:class:`object` (D)"
msgstr ""
#: ../../c-api/structures.rst:808
msgid ""
"(*): Zero-terminated, UTF8-encoded C string. With :c:macro:`!Py_T_STRING` "
"the C representation is a pointer; with :c:macro:`!Py_T_STRING_INPLACE` the "
"string is stored directly in the structure."
msgstr ""
#: ../../c-api/structures.rst:813
msgid "(**): String of length 1. Only ASCII is accepted."
msgstr ""
#: ../../c-api/structures.rst:815
msgid "(RO): Implies :c:macro:`Py_READONLY`."
msgstr ""
#: ../../c-api/structures.rst:817
msgid ""
"(D): Can be deleted, in which case the pointer is set to ``NULL``. Reading a "
"``NULL`` pointer raises :py:exc:`AttributeError`."
msgstr ""
#: ../../c-api/structures.rst:843
msgid ""
"In previous versions, the macros were only available with ``#include "
"\"structmember.h\"`` and were named without the ``Py_`` prefix (e.g. as "
"``T_INT``). The header is still available and contains the old names, along "
"with the following deprecated types:"
msgstr ""
#: ../../c-api/structures.rst:851
msgid ""
"Like ``Py_T_OBJECT_EX``, but ``NULL`` is converted to ``None``. This results "
"in surprising behavior in Python: deleting the attribute effectively sets it "
"to ``None``."
msgstr ""
#: ../../c-api/structures.rst:857
msgid "Always ``None``. Must be used with :c:macro:`Py_READONLY`."
msgstr ""
#: ../../c-api/structures.rst:860
msgid "Defining Getters and Setters"
msgstr ""
#: ../../c-api/structures.rst:864
msgid ""
"Structure to define property-like access for a type. See also description of "
"the :c:member:`PyTypeObject.tp_getset` slot."
msgstr ""
"型のプロパティのようなアクセスを定義するための構造体です。 :c:member:"
"`PyTypeObject.tp_getset` スロットの説明も参照してください。"
#: ../../c-api/structures.rst:869
msgid "attribute name"
msgstr "属性名"
#: ../../c-api/structures.rst:873
msgid "C function to get the attribute."
msgstr ""
#: ../../c-api/structures.rst:877
msgid ""
"Optional C function to set or delete the attribute. If ``NULL``, the "
"attribute is read-only."
msgstr ""
#: ../../c-api/structures.rst:882
msgid "optional docstring"
msgstr "任意のドキュメンテーション文字列"
#: ../../c-api/structures.rst:886
msgid ""
"Optional user data pointer, providing additional data for getter and setter."
msgstr ""
#: ../../c-api/structures.rst:890
msgid ""
"The ``get`` function takes one :c:expr:`PyObject*` parameter (the instance) "
"and a user data pointer (the associated ``closure``):"
msgstr ""
#: ../../c-api/structures.rst:893
msgid ""
"It should return a new reference on success or ``NULL`` with a set exception "
"on failure."
msgstr ""
"成功または失敗時に ``NULL`` と例外の集合にされたときは新しい参照を返します。"
#: ../../c-api/structures.rst:898
msgid ""
"``set`` functions take two :c:expr:`PyObject*` parameters (the instance and "
"the value to be set) and a user data pointer (the associated ``closure``):"
msgstr ""
#: ../../c-api/structures.rst:901
msgid ""
"In case the attribute should be deleted the second parameter is ``NULL``. "
"Should return ``0`` on success or ``-1`` with a set exception on failure."
msgstr ""
"属性を削除する場合は、2 番目のパラメータに ``NULL`` を指定します。成功した場"
"合は ``0`` を、失敗した場合は ``-1`` を例外として返します。"
#: ../../c-api/structures.rst:453 ../../c-api/structures.rst:463
msgid "built-in function"
msgstr "組み込み関数"
#: ../../c-api/structures.rst:453
msgid "classmethod"
msgstr "クラスメソッド"
#: ../../c-api/structures.rst:463
msgid "staticmethod"
msgstr "静的メソッド"
#: ../../c-api/structures.rst:744
msgid "READ_RESTRICTED (C macro)"
msgstr ""
#: ../../c-api/structures.rst:744
msgid "WRITE_RESTRICTED (C macro)"
msgstr ""
#: ../../c-api/structures.rst:744
msgid "RESTRICTED (C macro)"
msgstr ""
#: ../../c-api/structures.rst:757
msgid "READONLY (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_BYTE (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_SHORT (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_INT (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_LONG (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_LONGLONG (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_UBYTE (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_USHORT (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_UINT (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_ULONG (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_ULONGULONG (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_PYSSIZET (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_FLOAT (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_DOUBLE (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_BOOL (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_CHAR (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_STRING (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_STRING_INPLACE (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "T_OBJECT_EX (C macro)"
msgstr ""
#: ../../c-api/structures.rst:820
msgid "structmember.h"
msgstr ""