# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2025, 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.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-03 16:35+0000\n" "PO-Revision-Date: 2025-09-22 17:54+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Chinese (China) (https://app.transifex.com/python-doc/teams/5390/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../../c-api/capsule.rst:6 msgid "Capsules" msgstr "Capsule 对象" #: ../../c-api/capsule.rst:10 msgid "" "Refer to :ref:`using-capsules` for more information on using these objects." msgstr "有关使用这些对象的更多信息请参阅 :ref:`using-capsules`。" #: ../../c-api/capsule.rst:17 msgid "" "This subtype of :c:type:`PyObject` represents an opaque value, useful for C " "extension modules who need to pass an opaque value (as a :c:type:`void*` " "pointer) through Python code to other C code. It is often used to make a C " "function pointer defined in one module available to other modules, so the " "regular import mechanism can be used to access C APIs defined in dynamically" " loaded modules." msgstr "" "这个 :c:type:`PyObject` 的子类型代表一个隐藏的值,适用于需要将隐藏值(作为 :c:type:`void*` 指针)通过 Python" " 代码传递到其他 C 代码的 C 扩展模块。 它常常被用来让在一个模块中定义的 C " "函数指针在其他模块中可用,这样就可以使用常规导入机制来访问在动态加载的模块中定义的 C API。" #: ../../c-api/capsule.rst:27 msgid "The type of a destructor callback for a capsule. Defined as::" msgstr "Capsule 的析构器回调的类型。 定义如下:" #: ../../c-api/capsule.rst:31 msgid "" "See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " "callbacks." msgstr "参阅 :c:func:`PyCapsule_New` 来获取 PyCapsule_Destructor 返回值的语义。" #: ../../c-api/capsule.rst:37 msgid "" "Return true if its argument is a :c:type:`PyCapsule`. This function always " "succeeds." msgstr "如果参数是一个 :c:type:`PyCapsule` 则返回真值。 此函数总是会成功执行。" #: ../../c-api/capsule.rst:43 msgid "" "Create a :c:type:`PyCapsule` encapsulating the *pointer*. The *pointer* " "argument may not be ``NULL``." msgstr "创建一个封装了 *pointer* 的 :c:type:`PyCapsule`。 *pointer* 参考可以不为 ``NULL``。" #: ../../c-api/capsule.rst:46 msgid "On failure, set an exception and return ``NULL``." msgstr "在失败时设置一个异常并返回 ``NULL``。" #: ../../c-api/capsule.rst:48 msgid "" "The *name* string may either be ``NULL`` or a pointer to a valid C string. " "If non-``NULL``, this string must outlive the capsule. (Though it is " "permitted to free it inside the *destructor*.)" msgstr "" "字符串 *name* 可以是 ``NULL`` 或是一个指向有效的 C 字符串的指针。 如果不为 ``NULL``,则此字符串必须比 capsule " "长(虽然也允许在 *destructor* 中释放它。)" #: ../../c-api/capsule.rst:52 msgid "" "If the *destructor* argument is not ``NULL``, it will be called with the " "capsule as its argument when it is destroyed." msgstr "如果 *destructor* 参数不为 ``NULL``,则当它被销毁时将附带 capsule 作为参数来调用。" #: ../../c-api/capsule.rst:55 msgid "" "If this capsule will be stored as an attribute of a module, the *name* " "should be specified as ``modulename.attributename``. This will enable other" " modules to import the capsule using :c:func:`PyCapsule_Import`." msgstr "" "如果此 capsule 将被保存为一个模块的属性,则 *name* 应当被指定为 ``modulename.attributename``。 " "这将允许其他模块使用 :c:func:`PyCapsule_Import` 来导入此 capsule。" #: ../../c-api/capsule.rst:62 msgid "" "Retrieve the *pointer* stored in the capsule. On failure, set an exception " "and return ``NULL``." msgstr "提取保存在 capsule 中的 *pointer*。 在失败时设置一个异常并返回 ``NULL``。" #: ../../c-api/capsule.rst:65 msgid "" "The *name* parameter must compare exactly to the name stored in the capsule." " If the name stored in the capsule is ``NULL``, the *name* passed in must " "also be ``NULL``. Python uses the C function :c:func:`strcmp` to compare " "capsule names." msgstr "" "*name* 形参必须与保存在 capsule 中的名称进行精确比较。 如果保存在 capsule 中的名称为 ``NULL``,则传入的 *name*" " 也必须为 ``NULL``。 Python 会使用 C 函数 :c:func:`strcmp` 来比较 capsule 名称。" #: ../../c-api/capsule.rst:73 msgid "" "Return the current destructor stored in the capsule. On failure, set an " "exception and return ``NULL``." msgstr "返回保存在 capsule 中的当前析构器。 在失败时设置一个异常并返回 ``NULL``。" #: ../../c-api/capsule.rst:76 msgid "" "It is legal for a capsule to have a ``NULL`` destructor. This makes a " "``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or " ":c:func:`PyErr_Occurred` to disambiguate." msgstr "" "capsule 具有 ``NULL`` 析构器是合法的。 这会使得 ``NULL`` 返回码有些歧义;请使用 " ":c:func:`PyCapsule_IsValid` 或 :c:func:`PyErr_Occurred` 来消除歧义。" #: ../../c-api/capsule.rst:83 msgid "" "Return the current context stored in the capsule. On failure, set an " "exception and return ``NULL``." msgstr "返回保存在 capsule 中的当前上下文。 在失败时设置一个异常并返回 ``NULL``。" #: ../../c-api/capsule.rst:86 msgid "" "It is legal for a capsule to have a ``NULL`` context. This makes a ``NULL``" " return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or " ":c:func:`PyErr_Occurred` to disambiguate." msgstr "" "capsule 具有 ``NULL`` 上下文是全法的。 这会使得 ``NULL`` 返回码有些歧义;请使用 " ":c:func:`PyCapsule_IsValid` 或 :c:func:`PyErr_Occurred` 来消除歧义。" #: ../../c-api/capsule.rst:93 msgid "" "Return the current name stored in the capsule. On failure, set an exception" " and return ``NULL``." msgstr "返回保存在 capsule 中的当前名称。 在失败时设置一个异常并返回 ``NULL``。" #: ../../c-api/capsule.rst:96 msgid "" "It is legal for a capsule to have a ``NULL`` name. This makes a ``NULL`` " "return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or " ":c:func:`PyErr_Occurred` to disambiguate." msgstr "" "capsule 具有 ``NULL`` 名称是合法的。 这会使得 ``NULL`` 返回码有些歧义;请使用 " ":c:func:`PyCapsule_IsValid` 或 :c:func:`PyErr_Occurred` 来消除歧义。" #: ../../c-api/capsule.rst:103 msgid "" "Import a pointer to a C object from a capsule attribute in a module. The " "*name* parameter should specify the full name to the attribute, as in " "``module.attribute``. The *name* stored in the capsule must match this " "string exactly. If *no_block* is true, import the module without blocking " "(using :c:func:`PyImport_ImportModuleNoBlock`). If *no_block* is false, " "import the module conventionally (using :c:func:`PyImport_ImportModule`)." msgstr "" "从一个模块的 capsule 属性导入指向 C 对象的指针。 *name* 形参应当指定属性的完整名称,与 ``module.attribute`` " "中的一致。 保存在 capsule 中的 *name* 必须完全匹配此字符串。 如果 *no_block* 为真值,则以无阻塞模式导入模块 (使用 " ":c:func:`PyImport_ImportModuleNoBlock`)。 如果 *no_block* 为假值,则以传统模式导入模块 (使用 " ":c:func:`PyImport_ImportModule`)。" #: ../../c-api/capsule.rst:110 msgid "" "Return the capsule's internal *pointer* on success. On failure, set an " "exception and return ``NULL``." msgstr "成功时返回 capsule 的内部 *指针*。 在失败时设置一个异常并返回 ``NULL``。" #: ../../c-api/capsule.rst:116 msgid "" "Determines whether or not *capsule* is a valid capsule. A valid capsule is " "non-``NULL``, passes :c:func:`PyCapsule_CheckExact`, has a non-``NULL`` " "pointer stored in it, and its internal name matches the *name* parameter. " "(See :c:func:`PyCapsule_GetPointer` for information on how capsule names are" " compared.)" msgstr "" "确定 *capsule* 是否是一个有效的。 有效的 capsule 必须不为 ``NULL``,传递 " ":c:func:`PyCapsule_CheckExact`,在其中存储一个不为 ``NULL`` 的指针,并且其内部名称与 *name* 形参相匹配。" " (请参阅 :c:func:`PyCapsule_GetPointer` 了解如何对 capsule 名称进行比较的有关信息。)" #: ../../c-api/capsule.rst:122 msgid "" "In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " "to any of the accessors (any function starting with :c:func:`PyCapsule_Get`)" " are guaranteed to succeed." msgstr "" "换句话说,如果 :c:func:`PyCapsule_IsValid` 返回真值,则任何对访问器(以 :c:func:`PyCapsule_Get` " "开头的任何函数)的调用都保证会成功。" #: ../../c-api/capsule.rst:126 msgid "" "Return a nonzero value if the object is valid and matches the name passed " "in. Return ``0`` otherwise. This function will not fail." msgstr "如果对象有效并且匹配传入的名称则返回非零值。 否则返回 ``0``。 此函数一定不会失败。" #: ../../c-api/capsule.rst:132 msgid "Set the context pointer inside *capsule* to *context*." msgstr "将 *capsule* 内部的上下文指针设为 *context*。" #: ../../c-api/capsule.rst:134 ../../c-api/capsule.rst:141 #: ../../c-api/capsule.rst:150 ../../c-api/capsule.rst:158 msgid "" "Return ``0`` on success. Return nonzero and set an exception on failure." msgstr "成功时返回 ``0``。 失败时返回非零值并设置一个异常。" #: ../../c-api/capsule.rst:139 msgid "Set the destructor inside *capsule* to *destructor*." msgstr "将 *capsule* 内部的析构器设为 *destructor*。" #: ../../c-api/capsule.rst:146 msgid "" "Set the name inside *capsule* to *name*. If non-``NULL``, the name must " "outlive the capsule. If the previous *name* stored in the capsule was not " "``NULL``, no attempt is made to free it." msgstr "" "将 *capsule* 内部的名称设为 *name*。 如果不为 ``NULL``,则名称的存在期必须比 capsule 更长。 如果之前保存在 " "capsule 中的 *name* 不为 ``NULL``,则不会尝试释放它。" #: ../../c-api/capsule.rst:155 msgid "" "Set the void pointer inside *capsule* to *pointer*. The pointer may not be " "``NULL``." msgstr "将 *capsule* 内部的空指针设为 *pointer*。 指针不可为 ``NULL``。"