[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/python/python-docs-zh-tw/library/string/c-api/structures.po [Back]  [Original]

# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2022, Python Software Foundation
# This file is distributed under the same license as the Python package.
#
# Translators:
# Leon H., 2017
msgid ""
msgstr ""
"Project-Id-Version: Python 3.12\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-29 00:03+0000\n"
"PO-Revision-Date: 2018-05-23 14:07+0000\n"
"Last-Translator: Adrian Liaw \n"
"Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-"
"tw)\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: ../../c-api/structures.rst:6
msgid "Common Object Structures"
msgstr ""

#: ../../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 ""

#: ../../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*`.  Access to the members must be done by using the "
"macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`."
msgstr ""

#: ../../c-api/structures.rst:38
msgid ""
"This is an extension of :c:type:`PyObject` that adds the :c:member:"
"`~PyVarObject.ob_size` field.  This is only used for objects that have some "
"notion of *length*. This type does not often appear in the Python/C API. "
"Access to the members must be done by using the macros :c:macro:"
"`Py_REFCNT`, :c:macro:`Py_TYPE`, and :c:macro:`Py_SIZE`."
msgstr ""

#: ../../c-api/structures.rst:47
msgid ""
"This is a macro used when declaring new types which represent objects "
"without a varying length.  The PyObject_HEAD macro expands to::"
msgstr ""

#: ../../c-api/structures.rst:52
msgid "See documentation of :c:type:`PyObject` above."
msgstr ""

#: ../../c-api/structures.rst:57
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 ""

#: ../../c-api/structures.rst:63
msgid "See documentation of :c:type:`PyVarObject` above."
msgstr ""

#: ../../c-api/structures.rst:68
msgid ""
"Test if the *x* object is the *y* object, the same as ``x is y`` in Python."
msgstr ""

#: ../../c-api/structures.rst:75
msgid ""
"Test if an object is the ``None`` singleton, the same as ``x is None`` in "
"Python."
msgstr ""

#: ../../c-api/structures.rst:83
msgid ""
"Test if an object is the ``True`` singleton, the same as ``x is True`` in "
"Python."
msgstr ""

#: ../../c-api/structures.rst:91
msgid ""
"Test if an object is the ``False`` singleton, the same as ``x is False`` in "
"Python."
msgstr ""

#: ../../c-api/structures.rst:99
msgid "Get the type of the Python object *o*."
msgstr ""

#: ../../c-api/structures.rst:101
msgid "Return a :term:`borrowed reference`."
msgstr ""

#: ../../c-api/structures.rst:103
msgid "Use the :c:func:`Py_SET_TYPE` function to set an object type."
msgstr ""

#: ../../c-api/structures.rst:105
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:112
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:120
msgid "Set the object *o* type to *type*."
msgstr ""

#: ../../c-api/structures.rst:127
msgid "Get the size of the Python object *o*."
msgstr ""

#: ../../c-api/structures.rst:129
msgid "Use the :c:func:`Py_SET_SIZE` function to set an object size."
msgstr ""

#: ../../c-api/structures.rst:131
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:138
msgid "Set the object *o* size to *size*."
msgstr ""

#: ../../c-api/structures.rst:145
msgid ""
"This is a macro which expands to initialization values for a new :c:type:"
"`PyObject` type.  This macro expands to::"
msgstr ""

#: ../../c-api/structures.rst:154
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:163
msgid "Implementing functions and methods"
msgstr ""

#: ../../c-api/structures.rst:167
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:174
msgid "The function signature is::"
msgstr ""

#: ../../c-api/structures.rst:181
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:192
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:202
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:213
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:228
msgid ""
"Structure used to describe a method of an extension type.  This structure "
"has four fields:"
msgstr ""

#: ../../c-api/structures.rst:233
msgid "Name of the method."
msgstr ""

#: ../../c-api/structures.rst:237
msgid "Pointer to the C implementation."
msgstr ""

#: ../../c-api/structures.rst:241
msgid "Flags bits indicating how the call should be constructed."
msgstr ""

#: ../../c-api/structures.rst:245
msgid "Points to the contents of the docstring."
msgstr ""

#: ../../c-api/structures.rst:247
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:255
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:260
msgid "There are these calling conventions:"
msgstr ""

#: ../../c-api/structures.rst:264
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-api/structures.rst:274
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:288
msgid ":c:expr:`METH_VARARGS | METH_KEYWORDS`"
msgstr ""

#: ../../c-api/structures.rst:283
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:292
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:302
msgid "``METH_FASTCALL`` is now part of the :ref:`stable ABI `."
msgstr ""

#: ../../c-api/structures.rst:319
msgid ":c:expr:`METH_FASTCALL | METH_KEYWORDS`"
msgstr ""

#: ../../c-api/structures.rst:308
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:323
msgid ""
"Can only be used in the combination with other flags: :ref:`METH_METHOD | "
"METH_FASTCALL | METH_KEYWORDS `."
msgstr ""

#: ../../c-api/structures.rst:340
msgid ":c:expr:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`"
msgstr ""

#: ../../c-api/structures.rst:330
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:335
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:344
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:350
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:356
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:362
msgid ""
"These two constants are not used to indicate the calling convention but the "
"binding when use 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:372
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 :func:`classmethod` built-in function."
msgstr ""

#: ../../c-api/structures.rst:382
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 :func:`staticmethod` built-in function."
msgstr ""

#: ../../c-api/structures.rst:386
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:392
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:404
msgid "Accessing attributes of extension types"
msgstr ""

#: ../../c-api/structures.rst:408
msgid ""
"Structure which describes an attribute of a type which corresponds to a C "
"struct member.  Its fields are, in order:"
msgstr ""

#: ../../c-api/structures.rst:413
msgid ""
"Name of the member. A NULL value marks the end of a ``PyMemberDef[]`` array."
msgstr ""

#: ../../c-api/structures.rst:416
msgid "The string should be static, no copy is made of it."
msgstr ""

#: ../../c-api/structures.rst:420
msgid ""
"The offset in bytes that the member is located on the types object struct."
msgstr ""

#: ../../c-api/structures.rst:424
msgid ""
"The type of the member in the C struct. See :ref:`PyMemberDef-types` for the "
"possible values."
msgstr ""

#: ../../c-api/structures.rst:429
msgid ""
"Zero or more of the :ref:`PyMemberDef-flags`, combined using bitwise OR."
msgstr ""

#: ../../c-api/structures.rst:433
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:437
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:446
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. These must be defined with "
"``Py_T_PYSSIZET`` and ``Py_READONLY``, for example::"
msgstr ""

#: ../../c-api/structures.rst:458
msgid "(You may need to ``#include `` for :c:func:`!offsetof`.)"
msgstr ""

#: ../../c-api/structures.rst:460
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:468
msgid ""
"``PyMemberDef`` is always available. Previously, it required including "
"``\"structmember.h\"``."
msgstr ""

#: ../../c-api/structures.rst:473
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:479
msgid ""
"``PyMember_GetOne`` is always available. Previously, it required including "
"``\"structmember.h\"``."
msgstr ""

#: ../../c-api/structures.rst:484
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:490
msgid ""
"``PyMember_SetOne`` is always available. Previously, it required including "
"``\"structmember.h\"``."
msgstr ""

#: ../../c-api/structures.rst:496
msgid "Member flags"
msgstr ""

#: ../../c-api/structures.rst:498
msgid "The following flags can be used with :c:member:`PyMemberDef.flags`:"
msgstr ""

#: ../../c-api/structures.rst:502
msgid "Not writable."
msgstr ""

#: ../../c-api/structures.rst:506
msgid ""
"Emit an ``object.__getattr__`` :ref:`audit event ` before "
"reading."
msgstr ""

#: ../../c-api/structures.rst:511
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:515
msgid ""
"Can only be used as part of :c:member:`Py_tp_members ` :c:type:`slot ` when creating a class using "
"negative :c:member:`~PyType_Spec.basicsize`. It is mandatory in that case."
msgstr ""

#: ../../c-api/structures.rst:520
msgid ""
"This flag is only used in :c:type:`PyTypeSlot`. When setting :c:member:"
"`~PyTypeObject.tp_members` during class creation, Python clears it and sets :"
"c:member:`PyMemberDef.offset` to the offset from the ``PyObject`` struct."
msgstr ""

#: ../../c-api/structures.rst:532
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:543
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:552
msgid "Member types"
msgstr ""

#: ../../c-api/structures.rst:554
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:562
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:566
msgid "Macro name"
msgstr ""

#: ../../c-api/structures.rst:566
msgid "C type"
msgstr ""

#: ../../c-api/structures.rst:566
msgid "Python type"
msgstr ""

#: ../../c-api/structures.rst:568
msgid ":c:expr:`char`"
msgstr ""

#: ../../c-api/structures.rst:568 ../../c-api/structures.rst:569
#: ../../c-api/structures.rst:570 ../../c-api/structures.rst:571
#: ../../c-api/structures.rst:572 ../../c-api/structures.rst:573
#: ../../c-api/structures.rst:574 ../../c-api/structures.rst:575
#: ../../c-api/structures.rst:576 ../../c-api/structures.rst:577
#: ../../c-api/structures.rst:578
msgid ":py:class:`int`"
msgstr ":py:class:`int`"

#: ../../c-api/structures.rst:569
msgid ":c:expr:`short`"
msgstr ":c:expr:`short`"

#: ../../c-api/structures.rst:570
msgid ":c:expr:`int`"
msgstr ":c:expr:`int`"

#: ../../c-api/structures.rst:571
msgid ":c:expr:`long`"
msgstr ":c:expr:`long`"

#: ../../c-api/structures.rst:572
msgid ":c:expr:`long long`"
msgstr ":c:expr:`long long`"

#: ../../c-api/structures.rst:573
msgid ":c:expr:`unsigned char`"
msgstr ":c:expr:`unsigned char`"

#: ../../c-api/structures.rst:574
msgid ":c:expr:`unsigned int`"
msgstr ":c:expr:`unsigned int`"

#: ../../c-api/structures.rst:575
msgid ":c:expr:`unsigned short`"
msgstr ":c:expr:`unsigned short`"

#: ../../c-api/structures.rst:576
msgid ":c:expr:`unsigned long`"
msgstr ":c:expr:`unsigned long`"

#: ../../c-api/structures.rst:577
msgid ":c:expr:`unsigned long long`"
msgstr ":c:expr:`unsigned long long`"

#: ../../c-api/structures.rst:578
msgid ":c:expr:`Py_ssize_t`"
msgstr ":c:expr:`Py_ssize_t`"

#: ../../c-api/structures.rst:579
msgid ":c:expr:`float`"
msgstr ":c:expr:`float`"

#: ../../c-api/structures.rst:579 ../../c-api/structures.rst:580
msgid ":py:class:`float`"
msgstr ":py:class:`float`"

#: ../../c-api/structures.rst:580
msgid ":c:expr:`double`"
msgstr ":c:expr:`double`"

#: ../../c-api/structures.rst:581
msgid ":c:expr:`char` (written as 0 or 1)"
msgstr ":c:expr:`char`  0  1"

#: ../../c-api/structures.rst:581
msgid ":py:class:`bool`"
msgstr ":py:class:`bool`"

#: ../../c-api/structures.rst:583
msgid ":c:expr:`const char *` (*)"
msgstr ":c:expr:`const char *` (*)"

#: ../../c-api/structures.rst:583 ../../c-api/structures.rst:584
msgid ":py:class:`str` (RO)"
msgstr ":py:class:`str` (RO)"

#: ../../c-api/structures.rst:584
msgid ":c:expr:`const char[]` (*)"
msgstr ":c:expr:`const char[]` (*)"

#: ../../c-api/structures.rst:585
msgid ":c:expr:`char` (0-127)"
msgstr ":c:expr:`char` (0-127)"

#: ../../c-api/structures.rst:585
msgid ":py:class:`str` (**)"
msgstr ":py:class:`str` (**)"

#: ../../c-api/structures.rst:586
msgid ":c:expr:`PyObject *`"
msgstr ":c:expr:`PyObject *`"

#: ../../c-api/structures.rst:586
msgid ":py:class:`object` (D)"
msgstr ":py:class:`object` (D)"

#: ../../c-api/structures.rst:589
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_INLINE` the "
"string is stored directly in the structure."
msgstr ""

#: ../../c-api/structures.rst:594
msgid "(**): String of length 1. Only ASCII is accepted."
msgstr ""

#: ../../c-api/structures.rst:596
msgid "(RO): Implies :c:macro:`Py_READONLY`."
msgstr ""

#: ../../c-api/structures.rst:598
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:624
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:632
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:638
msgid "Always ``None``. Must be used with :c:macro:`Py_READONLY`."
msgstr ""

#: ../../c-api/structures.rst:641
msgid "Defining Getters and Setters"
msgstr ""

#: ../../c-api/structures.rst:645
msgid ""
"Structure to define property-like access for a type. See also description of "
"the :c:member:`PyTypeObject.tp_getset` slot."
msgstr ""

#: ../../c-api/structures.rst:650
msgid "attribute name"
msgstr ""

#: ../../c-api/structures.rst:654
msgid "C function to get the attribute."
msgstr ""

#: ../../c-api/structures.rst:658
msgid ""
"Optional C function to set or delete the attribute, if omitted the attribute "
"is readonly."
msgstr ""

#: ../../c-api/structures.rst:662
msgid "optional docstring"
msgstr ""

#: ../../c-api/structures.rst:666
msgid ""
"Optional function pointer, providing additional data for getter and setter."
msgstr ""

#: ../../c-api/structures.rst:668
msgid ""
"The ``get`` function takes one :c:expr:`PyObject*` parameter (the instance) "
"and a function pointer (the associated ``closure``)::"
msgstr ""

#: ../../c-api/structures.rst:673
msgid ""
"It should return a new reference on success or ``NULL`` with a set exception "
"on failure."
msgstr ""

#: ../../c-api/structures.rst:676
msgid ""
"``set`` functions take two :c:expr:`PyObject*` parameters (the instance and "
"the value to be set) and a function pointer (the associated ``closure``)::"
msgstr ""

#: ../../c-api/structures.rst:681
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 ""

#: ../../c-api/structures.rst:370 ../../c-api/structures.rst:380
msgid "built-in function"
msgstr "built-in function"

#: ../../c-api/structures.rst:370
msgid "classmethod"
msgstr "classmethod"

#: ../../c-api/structures.rst:380
msgid "staticmethod"
msgstr "staticmethod"

#: ../../c-api/structures.rst:525
msgid "READ_RESTRICTED"
msgstr "READ_RESTRICTED"

#: ../../c-api/structures.rst:525
msgid "WRITE_RESTRICTED"
msgstr "WRITE_RESTRICTED"

#: ../../c-api/structures.rst:525
msgid "RESTRICTED"
msgstr "RESTRICTED"

#: ../../c-api/structures.rst:538
msgid "READONLY"
msgstr "READONLY"

#: ../../c-api/structures.rst:601
msgid "T_BYTE"
msgstr "T_BYTE"

#: ../../c-api/structures.rst:601
msgid "T_SHORT"
msgstr "T_SHORT"

#: ../../c-api/structures.rst:601
msgid "T_INT"
msgstr "T_INT"

#: ../../c-api/structures.rst:601
msgid "T_LONG"
msgstr "T_LONG"

#: ../../c-api/structures.rst:601
msgid "T_LONGLONG"
msgstr "T_LONGLONG"

#: ../../c-api/structures.rst:601
msgid "T_UBYTE"
msgstr "T_UBYTE"

#: ../../c-api/structures.rst:601
msgid "T_USHORT"
msgstr "T_USHORT"

#: ../../c-api/structures.rst:601
msgid "T_UINT"
msgstr "T_UINT"

#: ../../c-api/structures.rst:601
msgid "T_ULONG"
msgstr "T_ULONG"

#: ../../c-api/structures.rst:601
msgid "T_ULONGULONG"
msgstr "T_ULONGULONG"

#: ../../c-api/structures.rst:601
msgid "T_PYSSIZET"
msgstr "T_PYSSIZET"

#: ../../c-api/structures.rst:601
msgid "T_FLOAT"
msgstr "T_FLOAT"

#: ../../c-api/structures.rst:601
msgid "T_DOUBLE"
msgstr "T_DOUBLE"

#: ../../c-api/structures.rst:601
msgid "T_BOOL"
msgstr "T_BOOL"

#: ../../c-api/structures.rst:601
msgid "T_CHAR"
msgstr "T_CHAR"

#: ../../c-api/structures.rst:601
msgid "T_STRING"
msgstr "T_STRING"

#: ../../c-api/structures.rst:601
msgid "T_STRING_INPLACE"
msgstr "T_STRING_INPLACE"

#: ../../c-api/structures.rst:601
msgid "T_OBJECT_EX"
msgstr "T_OBJECT_EX"

#: ../../c-api/structures.rst:601
msgid "structmember.h"
msgstr "structmember.h"

Web Proxy Viewer  |  New URL  |  Original Page