# 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/allocation.rst:6 msgid "Allocating Objects on the Heap" msgstr "在堆上分配对象" #: ../../c-api/allocation.rst:17 msgid "" "Initialize a newly-allocated object *op* with its type and initial " "reference. Returns the initialized object. If *type* indicates that the " "object participates in the cyclic garbage detector, it is added to the " "detector's set of observed objects. Other fields of the object are not " "affected." msgstr "" "为新分配的对象 *op* 初始化它的类型和引用。返回初始化后的对象。如果 *type* " "声明这个对象参与循环垃圾检测,那么这个对象会被添加进垃圾检测的对象集中。这个对象的其他字段不会被影响。" #: ../../c-api/allocation.rst:26 msgid "" "This does everything :c:func:`PyObject_Init` does, and also initializes the " "length information for a variable-size object." msgstr "它的功能和 :c:func:`PyObject_Init` 一样,并且会初始化变量大小对象的长度信息。" #: ../../c-api/allocation.rst:32 msgid "" "Allocate a new Python object using the C structure type *TYPE* and the " "Python type object *type*. Fields not defined by the Python object header " "are not initialized; the object's reference count will be one. The size of " "the memory allocation is determined from the " ":c:member:`~PyTypeObject.tp_basicsize` field of the type object." msgstr "" "使用 C 结构类型 *TYPE* 和 Python 类型对象 *type* 分配一个新的 Python 对象。 未在该 Python " "对象头中定义的字段不会被初始化;对象的引用计数将为一。 内存分配大小由 type 对象的 " ":c:member:`~PyTypeObject.tp_basicsize` 字段来确定。" #: ../../c-api/allocation.rst:41 msgid "" "Allocate a new Python object using the C structure type *TYPE* and the " "Python type object *type*. Fields not defined by the Python object header " "are not initialized. The allocated memory allows for the *TYPE* structure " "plus *size* fields of the size given by the " ":c:member:`~PyTypeObject.tp_itemsize` field of *type*. This is useful for " "implementing objects like tuples, which are able to determine their size at " "construction time. Embedding the array of fields into the same allocation " "decreases the number of allocations, improving the memory management " "efficiency." msgstr "" "使用C的数据结构类型 *TYPE* 和Python的类型对象 *type* " "分配一个新的Python对象。Python对象头文件中没有定义的字段不会被初始化。被分配的内存空间预留了 *TYPE* 结构加 *type* 对象中 " ":c:member:`~PyTypeObject.tp_itemsize` 字段提供的 *size* " "字段的值。这对于实现类似元组这种能够在构造期决定自己大小的对象是很实用的。将字段的数组嵌入到相同的内存分配中可以减少内存分配的次数,这提高了内存分配的效率。" #: ../../c-api/allocation.rst:53 msgid "" "Releases memory allocated to an object using :c:func:`PyObject_New` or " ":c:func:`PyObject_NewVar`. This is normally called from the " ":c:member:`~PyTypeObject.tp_dealloc` handler specified in the object's type." " The fields of the object should not be accessed after this call as the " "memory is no longer a valid Python object." msgstr "" "释放由 :c:func:`PyObject_New` 或者 :c:func:`PyObject_NewVar` " "分配内存的对象。这通常由对象的type字段定义的 :c:member:`~PyTypeObject.tp_dealloc` " "处理函数来调用。调用这个函数以后op对象中的字段都不可以被访问,因为原分配的内存空间已不再是一个有效的Python对象。" #: ../../c-api/allocation.rst:62 msgid "" "Object which is visible in Python as ``None``. This should only be accessed" " using the :c:macro:`Py_None` macro, which evaluates to a pointer to this " "object." msgstr "" "这个对象是像 ``None`` 一样的 Python 对象。它可以使用 :c:macro:`Py_None` 宏访问,该宏的拿到指向该对象的指针。" #: ../../c-api/allocation.rst:69 msgid ":c:func:`PyModule_Create`" msgstr ":c:func:`PyModule_Create`" #: ../../c-api/allocation.rst:70 msgid "To allocate and create extension modules." msgstr "分配内存和创建扩展模块"