# 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.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-04-19 14:37+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/type.rst:6 msgid "Type Objects" msgstr "型オブジェクト" #: ../../c-api/type.rst:13 msgid "The C structure of the objects used to describe built-in types." msgstr "組み込み型を記述する際に用いられる、オブジェクトを表す C 構造体です。" #: ../../c-api/type.rst:18 msgid "" "This is the type object for type objects; it is the same object as :class:" "`type` in the Python layer." msgstr "" "型オブジェクト自身の型オブジェクトです。Python レイヤにおける :class:`type` " "と同じオブジェクトです。" #: ../../c-api/type.rst:24 msgid "" "Return non-zero if the object *o* is a type object, including instances of " "types derived from the standard type object. Return 0 in all other cases. " "This function always succeeds." msgstr "" #: ../../c-api/type.rst:31 msgid "" "Return non-zero if the object *o* is a type object, but not a subtype of the " "standard type object. Return 0 in all other cases. This function always " "succeeds." msgstr "" #: ../../c-api/type.rst:38 msgid "Clear the internal lookup cache. Return the current version tag." msgstr "内部の検索キャッシュをクリアします。現在のバージョンタグを返します。" #: ../../c-api/type.rst:42 msgid "" "Return the :c:member:`~PyTypeObject.tp_flags` member of *type*. This " "function is primarily meant for use with ``Py_LIMITED_API``; the individual " "flag bits are guaranteed to be stable across Python releases, but access to :" "c:member:`~PyTypeObject.tp_flags` itself is not part of the :ref:`limited " "API `." msgstr "" #: ../../c-api/type.rst:49 msgid "The return type is now ``unsigned long`` rather than ``long``." msgstr "返り値の型が ``long`` ではなく ``unsigned long`` になりました。" #: ../../c-api/type.rst:55 msgid "" "Return the type object's internal namespace, which is otherwise only exposed " "via a read-only proxy (:attr:`cls.__dict__ `). This is a " "replacement for accessing :c:member:`~PyTypeObject.tp_dict` directly. The " "returned dictionary must be treated as read-only." msgstr "" #: ../../c-api/type.rst:61 msgid "" "This function is meant for specific embedding and language-binding cases, " "where direct access to the dict is necessary and indirect access (e.g. via " "the proxy or :c:func:`PyObject_GetAttr`) isn't adequate." msgstr "" #: ../../c-api/type.rst:65 msgid "" "Extension modules should continue to use ``tp_dict``, directly or " "indirectly, when setting up their own types." msgstr "" #: ../../c-api/type.rst:73 msgid "" "Invalidate the internal lookup cache for the type and all of its subtypes. " "This function must be called after any manual modification of the attributes " "or base classes of the type." msgstr "" "内部の検索キャッシュを、その type とすべてのサブタイプに対して無効にします。" "この関数は type の属性や基底クラス列を変更したあとに手動で呼び出さなければな" "りません。" #: ../../c-api/type.rst:80 msgid "" "Register *callback* as a type watcher. Return a non-negative integer ID " "which must be passed to future calls to :c:func:`PyType_Watch`. In case of " "error (e.g. no more watcher IDs available), return ``-1`` and set an " "exception." msgstr "" #: ../../c-api/type.rst:85 msgid "" "In free-threaded builds, :c:func:`PyType_AddWatcher` is not thread-safe, so " "it must be called at start up (before spawning the first thread)." msgstr "" #: ../../c-api/type.rst:93 msgid "" "Clear watcher identified by *watcher_id* (previously returned from :c:func:" "`PyType_AddWatcher`). Return ``0`` on success, ``-1`` on error (e.g. if " "*watcher_id* was never registered.)" msgstr "" #: ../../c-api/type.rst:97 msgid "" "An extension should never call ``PyType_ClearWatcher`` with a *watcher_id* " "that was not returned to it by a previous call to :c:func:" "`PyType_AddWatcher`." msgstr "" #: ../../c-api/type.rst:106 msgid "" "Mark *type* as watched. The callback granted *watcher_id* by :c:func:" "`PyType_AddWatcher` will be called whenever :c:func:`PyType_Modified` " "reports a change to *type*. (The callback may be called only once for a " "series of consecutive modifications to *type*, if :c:func:`!_PyType_Lookup` " "is not called on *type* between the modifications; this is an implementation " "detail and subject to change.)" msgstr "" #: ../../c-api/type.rst:113 msgid "" "An extension should never call ``PyType_Watch`` with a *watcher_id* that was " "not returned to it by a previous call to :c:func:`PyType_AddWatcher`." msgstr "" #: ../../c-api/type.rst:121 msgid "" "Mark *type* as not watched. This undoes a previous call to :c:func:" "`PyType_Watch`. *type* must not be ``NULL``." msgstr "" #: ../../c-api/type.rst:124 msgid "" "An extension should never call this function with a *watcher_id* that was " "not returned to it by a previous call to :c:func:`PyType_AddWatcher`." msgstr "" #: ../../c-api/type.rst:127 msgid "" "On success, this function returns ``0``. On failure, this function returns " "``-1`` with an exception set." msgstr "" #: ../../c-api/type.rst:135 msgid "Type of a type-watcher callback function." msgstr "" #: ../../c-api/type.rst:137 msgid "" "The callback must not modify *type* or cause :c:func:`PyType_Modified` to be " "called on *type* or any type in its MRO; violating this rule could cause " "infinite recursion." msgstr "" #: ../../c-api/type.rst:146 msgid "" "Return non-zero if the type object *o* sets the feature *feature*. Type " "features are denoted by single bit flags." msgstr "" #: ../../c-api/type.rst:152 msgid "" "Return non-zero if the type object *type* sets the subclass flag *flag*. " "Subclass flags are denoted by :c:macro:`Py_TPFLAGS_*_SUBCLASS " "`. This function is used by many ``_Check`` " "functions for common types." msgstr "" #: ../../c-api/type.rst:158 msgid "" ":c:func:`PyObject_TypeCheck`, which is used as a slower alternative in " "``_Check`` functions for types that don't come with subclass flags." msgstr "" #: ../../c-api/type.rst:164 msgid "" "Return true if the type object includes support for the cycle detector; this " "tests the type flag :c:macro:`Py_TPFLAGS_HAVE_GC`." msgstr "" #: ../../c-api/type.rst:170 msgid "Return true if *a* is a subtype of *b*." msgstr "*a* が *b* のサブタイプの場合に真を返します。" #: ../../c-api/type.rst:172 msgid "" "This function only checks for actual subtypes, which means that :meth:`~type." "__subclasscheck__` is not called on *b*. Call :c:func:`PyObject_IsSubclass` " "to do the same check that :func:`issubclass` would do." msgstr "" #: ../../c-api/type.rst:180 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type " "object. Uses Python's default memory allocation mechanism to allocate " "memory for a new instance, zeros the memory, then initializes the memory as " "if by calling :c:func:`PyObject_Init` or :c:func:`PyObject_InitVar`." msgstr "" #: ../../c-api/type.rst:185 msgid "" "Do not call this directly to allocate memory for an object; call the type's :" "c:member:`~PyTypeObject.tp_alloc` slot instead." msgstr "" #: ../../c-api/type.rst:188 msgid "" "For types that support garbage collection (i.e., the :c:macro:" "`Py_TPFLAGS_HAVE_GC` flag is set), this function behaves like :c:macro:" "`PyObject_GC_New` or :c:macro:`PyObject_GC_NewVar` (except the memory is " "guaranteed to be zeroed before initialization), and should be paired with :c:" "func:`PyObject_GC_Del` in :c:member:`~PyTypeObject.tp_free`. Otherwise, it " "behaves like :c:macro:`PyObject_New` or :c:macro:`PyObject_NewVar` (except " "the memory is guaranteed to be zeroed before initialization) and should be " "paired with :c:func:`PyObject_Free` in :c:member:`~PyTypeObject.tp_free`." msgstr "" #: ../../c-api/type.rst:201 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type " "object. Creates a new instance using the type's :c:member:`~PyTypeObject." "tp_alloc` slot and returns the resulting object." msgstr "" #: ../../c-api/type.rst:208 msgid "" "Finalize a type object. This should be called on all type objects to finish " "their initialization. This function is responsible for adding inherited " "slots from a type's base class. Return ``0`` on success, or return ``-1`` " "and sets an exception on error." msgstr "" "型オブジェクトのファイナライズを行います。この関数は全てのオブジェクトで初期" "化を完了するために呼び出されなくてはなりません。この関数は、基底クラス型から" "継承したスロットを型オブジェクトに追加する役割があります。成功した場合には " "``0`` を返し、エラーの場合には ``-1`` を返して例外情報を設定します。" #: ../../c-api/type.rst:214 msgid "" "If some of the base classes implements the GC protocol and the provided type " "does not include the :c:macro:`Py_TPFLAGS_HAVE_GC` in its flags, then the GC " "protocol will be automatically implemented from its parents. On the " "contrary, if the type being created does include :c:macro:" "`Py_TPFLAGS_HAVE_GC` in its flags then it **must** implement the GC protocol " "itself by at least implementing the :c:member:`~PyTypeObject.tp_traverse` " "handle." msgstr "" #: ../../c-api/type.rst:225 msgid "" "Return the type's name. Equivalent to getting the type's :attr:`~type." "__name__` attribute." msgstr "" #: ../../c-api/type.rst:233 msgid "" "Return the type's qualified name. Equivalent to getting the type's :attr:" "`~type.__qualname__` attribute." msgstr "" #: ../../c-api/type.rst:240 msgid "" "Return the type's fully qualified name. Equivalent to ``f\"{type.__module__}." "{type.__qualname__}\"``, or :attr:`type.__qualname__` if :attr:`type." "__module__` is not a string or is equal to ``\"builtins\"``." msgstr "" #: ../../c-api/type.rst:249 msgid "" "Return the type's module name. Equivalent to getting the :attr:`type." "__module__` attribute." msgstr "" #: ../../c-api/type.rst:257 msgid "" "Return the function pointer stored in the given slot. If the result is " "``NULL``, this indicates that either the slot is ``NULL``, or that the " "function was called with invalid parameters. Callers will typically cast the " "result pointer into the appropriate function type." msgstr "" "与えられたスロットに格納されている関数ポインタを返します。返り値が ``NULL`` " "の場合は、スロットが ``NULL`` か、関数が不正な引数で呼ばれたことを示します。" "通常、呼び出し側は返り値のポインタを適切な関数型にキャストします。" #: ../../c-api/type.rst:263 msgid "" "See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument." msgstr "" #: ../../c-api/type.rst:267 msgid "" ":c:func:`PyType_GetSlot` can now accept all types. Previously, it was " "limited to :ref:`heap types `." msgstr "" #: ../../c-api/type.rst:274 msgid "" "Return the module object associated with the given type when the type was " "created using :c:func:`PyType_FromModuleAndSpec`." msgstr "" #: ../../c-api/type.rst:277 ../../c-api/type.rst:324 msgid "" "The returned reference is :term:`borrowed ` from *type*, " "and will be valid as long as you hold a reference to *type*. Do not release " "it with :c:func:`Py_DECREF` or similar." msgstr "" #: ../../c-api/type.rst:281 ../../c-api/type.rst:302 msgid "" "If no module is associated with the given type, sets :py:class:`TypeError` " "and returns ``NULL``." msgstr "" #: ../../c-api/type.rst:284 msgid "" "This function is usually used to get the module in which a method is " "defined. Note that in such a method, ``PyType_GetModule(Py_TYPE(self))`` may " "not return the intended result. ``Py_TYPE(self)`` may be a *subclass* of the " "intended class, and subclasses are not necessarily defined in the same " "module as their superclass. See :c:type:`PyCMethod` to get the class that " "defines the method. See :c:func:`PyType_GetModuleByDef` for cases when :c:" "type:`!PyCMethod` cannot be used." msgstr "" #: ../../c-api/type.rst:298 msgid "" "Return the state of the module object associated with the given type. This " "is a shortcut for calling :c:func:`PyModule_GetState()` on the result of :c:" "func:`PyType_GetModule`." msgstr "" #: ../../c-api/type.rst:305 msgid "" "If the *type* has an associated module but its state is ``NULL``, returns " "``NULL`` without setting an exception." msgstr "" #: ../../c-api/type.rst:313 msgid "" "Find the first superclass whose module was created from the given :c:type:" "`PyModuleDef` *def*, and return that module." msgstr "" #: ../../c-api/type.rst:316 msgid "" "If no module is found, raises a :py:class:`TypeError` and returns ``NULL``." msgstr "" #: ../../c-api/type.rst:318 msgid "" "This function is intended to be used together with :c:func:" "`PyModule_GetState()` to get module state from slot methods (such as :c:" "member:`~PyTypeObject.tp_init` or :c:member:`~PyNumberMethods.nb_add`) and " "other places where a method's defining class cannot be passed using the :c:" "type:`PyCMethod` calling convention." msgstr "" #: ../../c-api/type.rst:333 msgid "" "Find the first superclass in *type*'s :term:`method resolution order` whose :" "c:macro:`Py_tp_token` token is equal to the given one." msgstr "" #: ../../c-api/type.rst:336 msgid "" "If found, set *\\*result* to a new :term:`strong reference` to it and return " "``1``." msgstr "" #: ../../c-api/type.rst:338 msgid "If not found, set *\\*result* to ``NULL`` and return ``0``." msgstr "" #: ../../c-api/type.rst:339 msgid "" "On error, set *\\*result* to ``NULL`` and return ``-1`` with an exception " "set." msgstr "" #: ../../c-api/type.rst:342 msgid "" "The *result* argument may be ``NULL``, in which case *\\*result* is not set. " "Use this if you need only the return value." msgstr "" #: ../../c-api/type.rst:345 msgid "The *token* argument may not be ``NULL``." msgstr "" #: ../../c-api/type.rst:352 msgid "Attempt to assign a version tag to the given type." msgstr "" #: ../../c-api/type.rst:354 msgid "" "Returns 1 if the type already had a valid version tag or a new one was " "assigned, or 0 if a new tag could not be assigned." msgstr "" #: ../../c-api/type.rst:362 msgid "" "Return true if instances of *type* support creating weak references, false " "otherwise. This function always succeeds. *type* must not be ``NULL``." msgstr "" #: ../../c-api/type.rst:366 msgid ":ref:`weakrefobjects`" msgstr "" #: ../../c-api/type.rst:367 msgid ":py:mod:`weakref`" msgstr "" #: ../../c-api/type.rst:371 msgid "Creating Heap-Allocated Types" msgstr "" #: ../../c-api/type.rst:373 msgid "" "The following functions and structs are used to create :ref:`heap types " "`." msgstr "" #: ../../c-api/type.rst:378 msgid "" "Create and return a :ref:`heap type ` from the *spec* (see :c:" "macro:`Py_TPFLAGS_HEAPTYPE`)." msgstr "" #: ../../c-api/type.rst:381 msgid "" "The metaclass *metaclass* is used to construct the resulting type object. " "When *metaclass* is ``NULL``, the metaclass is derived from *bases* (or " "*Py_tp_base[s]* slots if *bases* is ``NULL``, see below)." msgstr "" #: ../../c-api/type.rst:385 msgid "" "Metaclasses that override :c:member:`~PyTypeObject.tp_new` are not " "supported, except if ``tp_new`` is ``NULL``." msgstr "" #: ../../c-api/type.rst:388 msgid "" "The *bases* argument can be used to specify base classes; it can either be " "only one class or a tuple of classes. If *bases* is ``NULL``, the :c:data:" "`Py_tp_bases` slot is used instead. If that also is ``NULL``, the :c:data:" "`Py_tp_base` slot is used instead. If that also is ``NULL``, the new type " "derives from :class:`object`." msgstr "" #: ../../c-api/type.rst:394 msgid "" "The *module* argument can be used to record the module in which the new " "class is defined. It must be a module object or ``NULL``. If not ``NULL``, " "the module is associated with the new type and can later be retrieved with :" "c:func:`PyType_GetModule`. The associated module is not inherited by " "subclasses; it must be specified for each class individually." msgstr "" #: ../../c-api/type.rst:401 msgid "This function calls :c:func:`PyType_Ready` on the new type." msgstr "" #: ../../c-api/type.rst:403 msgid "" "Note that this function does *not* fully match the behavior of calling :py:" "class:`type() ` or using the :keyword:`class` statement. With user-" "provided base types or metaclasses, prefer :ref:`calling ` :py:" "class:`type` (or the metaclass) over ``PyType_From*`` functions. " "Specifically:" msgstr "" #: ../../c-api/type.rst:410 msgid "" ":py:meth:`~object.__new__` is not called on the new class (and it must be " "set to ``type.__new__``)." msgstr "" #: ../../c-api/type.rst:412 msgid ":py:meth:`~object.__init__` is not called on the new class." msgstr "" #: ../../c-api/type.rst:413 msgid ":py:meth:`~object.__init_subclass__` is not called on any bases." msgstr "" #: ../../c-api/type.rst:414 msgid ":py:meth:`~object.__set_name__` is not called on new descriptors." msgstr "" #: ../../c-api/type.rst:421 msgid "Equivalent to ``PyType_FromMetaclass(NULL, module, spec, bases)``." msgstr "" #: ../../c-api/type.rst:427 msgid "" "The function now accepts a single class as the *bases* argument and ``NULL`` " "as the ``tp_doc`` slot." msgstr "" #: ../../c-api/type.rst:432 ../../c-api/type.rst:454 msgid "" "The function now finds and uses a metaclass corresponding to the provided " "base classes. Previously, only :class:`type` instances were returned." msgstr "" #: ../../c-api/type.rst:435 ../../c-api/type.rst:457 ../../c-api/type.rst:478 msgid "" "The :c:member:`~PyTypeObject.tp_new` of the metaclass is *ignored*. which " "may result in incomplete initialization. Creating classes whose metaclass " "overrides :c:member:`~PyTypeObject.tp_new` is deprecated." msgstr "" #: ../../c-api/type.rst:442 ../../c-api/type.rst:464 ../../c-api/type.rst:485 msgid "" "Creating classes whose metaclass overrides :c:member:`~PyTypeObject.tp_new` " "is no longer allowed." msgstr "" #: ../../c-api/type.rst:448 msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, bases)``." msgstr "" #: ../../c-api/type.rst:470 msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, NULL)``." msgstr "" #: ../../c-api/type.rst:474 msgid "" "The function now finds and uses a metaclass corresponding to the base " "classes provided in *Py_tp_base[s]* slots. Previously, only :class:`type` " "instances were returned." msgstr "" #: ../../c-api/type.rst:491 msgid "" "Make a type immutable: set the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag." msgstr "" #: ../../c-api/type.rst:493 msgid "All base classes of *type* must be immutable." msgstr "" #: ../../c-api/type.rst:495 msgid "On success, return ``0``. On error, set an exception and return ``-1``." msgstr "" #: ../../c-api/type.rst:498 msgid "" "The type must not be used before it's made immutable. For example, type " "instances must not be created before the type is made immutable." msgstr "" #: ../../c-api/type.rst:514 msgid "Structure defining a type's behavior." msgstr "" #: ../../c-api/type.rst:518 msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`." msgstr "" #: ../../c-api/type.rst:522 msgid "" "If positive, specifies the size of the instance in bytes. It is used to set :" "c:member:`PyTypeObject.tp_basicsize`." msgstr "" #: ../../c-api/type.rst:525 msgid "" "If zero, specifies that :c:member:`~PyTypeObject.tp_basicsize` should be " "inherited." msgstr "" #: ../../c-api/type.rst:528 msgid "" "If negative, the absolute value specifies how much space instances of the " "class need *in addition* to the superclass. Use :c:func:" "`PyObject_GetTypeData` to get a pointer to subclass-specific memory reserved " "this way. For negative :c:member:`!basicsize`, Python will insert padding " "when needed to meet :c:member:`~PyTypeObject.tp_basicsize`'s alignment " "requirements." msgstr "" #: ../../c-api/type.rst:538 msgid "Previously, this field could not be negative." msgstr "" #: ../../c-api/type.rst:542 msgid "" "Size of one element of a variable-size type, in bytes. Used to set :c:member:" "`PyTypeObject.tp_itemsize`. See ``tp_itemsize`` documentation for caveats." msgstr "" #: ../../c-api/type.rst:546 msgid "" "If zero, :c:member:`~PyTypeObject.tp_itemsize` is inherited. Extending " "arbitrary variable-sized classes is dangerous, since some types use a fixed " "offset for variable-sized memory, which can then overlap fixed-sized memory " "used by a subclass. To help prevent mistakes, inheriting ``itemsize`` is " "only possible in the following situations:" msgstr "" #: ../../c-api/type.rst:553 msgid "" "The base is not variable-sized (its :c:member:`~PyTypeObject.tp_itemsize`)." msgstr "" #: ../../c-api/type.rst:555 msgid "" "The requested :c:member:`PyType_Spec.basicsize` is positive, suggesting that " "the memory layout of the base class is known." msgstr "" #: ../../c-api/type.rst:557 msgid "" "The requested :c:member:`PyType_Spec.basicsize` is zero, suggesting that the " "subclass does not access the instance's memory directly." msgstr "" #: ../../c-api/type.rst:560 msgid "With the :c:macro:`Py_TPFLAGS_ITEMS_AT_END` flag." msgstr "" #: ../../c-api/type.rst:564 msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`." msgstr "" #: ../../c-api/type.rst:566 msgid "" "If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:" "`PyType_FromSpecWithBases` sets it automatically." msgstr "" #: ../../c-api/type.rst:571 msgid "" "Array of :c:type:`PyType_Slot` structures. Terminated by the special slot " "value ``{0, NULL}``." msgstr "" #: ../../c-api/type.rst:574 msgid "Each slot ID should be specified at most once." msgstr "" #: ../../c-api/type.rst:584 msgid "" "Structure defining optional functionality of a type, containing a slot ID " "and a value pointer." msgstr "" #: ../../c-api/type.rst:589 msgid "A slot ID." msgstr "" #: ../../c-api/type.rst:591 msgid "" "Slot IDs are named like the field names of the structures :c:type:" "`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:" "type:`PyMappingMethods` and :c:type:`PyAsyncMethods` with an added ``Py_`` " "prefix. For example, use:" msgstr "" #: ../../c-api/type.rst:597 msgid ":c:data:`Py_tp_dealloc` to set :c:member:`PyTypeObject.tp_dealloc`" msgstr "" #: ../../c-api/type.rst:598 msgid ":c:data:`Py_nb_add` to set :c:member:`PyNumberMethods.nb_add`" msgstr "" #: ../../c-api/type.rst:599 msgid ":c:data:`Py_sq_length` to set :c:member:`PySequenceMethods.sq_length`" msgstr "" #: ../../c-api/type.rst:601 msgid "" "An additional slot is supported that does not correspond to a :c:type:`!" "PyTypeObject` struct field:" msgstr "" #: ../../c-api/type.rst:604 msgid ":c:data:`Py_tp_token`" msgstr "" #: ../../c-api/type.rst:606 msgid "" "The following “offset” fields cannot be set using :c:type:`PyType_Slot`:" msgstr "" #: ../../c-api/type.rst:608 msgid "" ":c:member:`~PyTypeObject.tp_weaklistoffset` (use :c:macro:" "`Py_TPFLAGS_MANAGED_WEAKREF` instead if possible)" msgstr "" #: ../../c-api/type.rst:610 msgid "" ":c:member:`~PyTypeObject.tp_dictoffset` (use :c:macro:" "`Py_TPFLAGS_MANAGED_DICT` instead if possible)" msgstr "" #: ../../c-api/type.rst:612 msgid "" ":c:member:`~PyTypeObject.tp_vectorcall_offset` (use " "``\"__vectorcalloffset__\"`` in :ref:`PyMemberDef `)" msgstr "" #: ../../c-api/type.rst:616 msgid "" "If it is not possible to switch to a ``MANAGED`` flag (for example, for " "vectorcall or to support Python older than 3.12), specify the offset in :c:" "data:`Py_tp_members`. See :ref:`PyMemberDef documentation ` for details." msgstr "" #: ../../c-api/type.rst:622 msgid "" "The following internal fields cannot be set at all when creating a heap type:" msgstr "" #: ../../c-api/type.rst:625 msgid "" ":c:member:`~PyTypeObject.tp_dict`, :c:member:`~PyTypeObject.tp_mro`, :c:" "member:`~PyTypeObject.tp_cache`, :c:member:`~PyTypeObject.tp_subclasses`, " "and :c:member:`~PyTypeObject.tp_weaklist`." msgstr "" #: ../../c-api/type.rst:631 msgid "" "Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on " "some platforms. To avoid issues, use the *bases* argument of :c:func:" "`PyType_FromSpecWithBases` instead." msgstr "" #: ../../c-api/type.rst:636 msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API." msgstr "" #: ../../c-api/type.rst:639 msgid "" ":c:member:`~PyBufferProcs.bf_getbuffer` and :c:member:`~PyBufferProcs." "bf_releasebuffer` are now available under the :ref:`limited API `." msgstr "" #: ../../c-api/type.rst:644 msgid "" "The field :c:member:`~PyTypeObject.tp_vectorcall` can now be set using :c:" "data:`Py_tp_vectorcall`. See the field's documentation for details." msgstr "" #: ../../c-api/type.rst:651 msgid "" "The desired value of the slot. In most cases, this is a pointer to a " "function." msgstr "" #: ../../c-api/type.rst:654 msgid "*pfunc* values may not be ``NULL``, except for the following slots:" msgstr "" #: ../../c-api/type.rst:656 msgid ":c:data:`Py_tp_doc`" msgstr "" #: ../../c-api/type.rst:657 msgid "" ":c:data:`Py_tp_token` (for clarity, prefer :c:data:`Py_TP_USE_SPEC` rather " "than ``NULL``)" msgstr "" #: ../../c-api/type.rst:663 msgid "" "A :c:member:`~PyType_Slot.slot` that records a static memory layout ID for a " "class." msgstr "" #: ../../c-api/type.rst:666 msgid "" "If the :c:type:`PyType_Spec` of the class is statically allocated, the token " "can be set to the spec using the special value :c:data:`Py_TP_USE_SPEC`:" msgstr "" #: ../../c-api/type.rst:670 msgid "" "static PyType_Slot foo_slots[] = {\n" " {Py_tp_token, Py_TP_USE_SPEC}," msgstr "" #: ../../c-api/type.rst:675 msgid "It can also be set to an arbitrary pointer, but you must ensure that:" msgstr "" #: ../../c-api/type.rst:677 msgid "" "The pointer outlives the class, so it's not reused for something else while " "the class exists." msgstr "" #: ../../c-api/type.rst:679 msgid "" "It \"belongs\" to the extension module where the class lives, so it will not " "clash with other extensions." msgstr "" #: ../../c-api/type.rst:682 msgid "" "Use :c:func:`PyType_GetBaseByToken` to check if a class's superclass has a " "given token -- that is, check whether the memory layout is compatible." msgstr "" #: ../../c-api/type.rst:685 msgid "" "To get the token for a given class (without considering superclasses), use :" "c:func:`PyType_GetSlot` with ``Py_tp_token``." msgstr "" #: ../../c-api/type.rst:694 msgid "" "Used as a value with :c:data:`Py_tp_token` to set the token to the class's :" "c:type:`PyType_Spec`. Expands to ``NULL``." msgstr "" #: ../../c-api/type.rst:8 msgid "object" msgstr "object" #: ../../c-api/type.rst:8 msgid "type" msgstr "type"