# 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-02-23 14:42+0000\n"
"PO-Revision-Date: 2025-09-16 00:00+0000\n"
"Last-Translator: python-doc bot, 2025\n"
"Language-Team: Indonesian (https://app.transifex.com/python-doc/teams/5390/"
"id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
msgid "Reference Counting"
msgstr ""
msgid ""
"The functions and macros in this section are used for managing reference "
"counts of Python objects."
msgstr ""
msgid "Get the reference count of the Python object *o*."
msgstr ""
msgid ""
"Note that the returned value may not actually reflect how many references to "
"the object are actually held. For example, some objects are :term:"
"`immortal` and have a very high refcount that does not reflect the actual "
"number of references. Consequently, do not rely on the returned value to be "
"accurate, other than a value of 0 or 1."
msgstr ""
msgid ""
"Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count."
msgstr ""
msgid ""
"On :term:`free-threaded builds ` of Python, returning 1 "
"isn't sufficient to determine if it's safe to treat *o* as having no access "
"by other threads. Use :c:func:`PyUnstable_Object_IsUniquelyReferenced` for "
"that instead."
msgstr ""
msgid ""
"See also the function :c:func:"
"`PyUnstable_Object_IsUniqueReferencedTemporary()`."
msgstr ""
msgid ":c:func:`Py_REFCNT()` is changed to the inline static function."
msgstr ""
msgid "The parameter type is no longer :c:expr:`const PyObject*`."
msgstr ""
msgid "Set the object *o* reference counter to *refcnt*."
msgstr ""
msgid ""
"On :ref:`Python build with Free Threading `, if "
"*refcnt* is larger than ``UINT32_MAX``, the object is made :term:`immortal`."
msgstr ""
msgid "This function has no effect on :term:`immortal` objects."
msgstr ""
msgid "Immortal objects are not modified."
msgstr ""
msgid ""
"Indicate taking a new :term:`strong reference` to object *o*, indicating it "
"is in use and should not be destroyed."
msgstr ""
msgid ""
"This function is usually used to convert a :term:`borrowed reference` to a :"
"term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be "
"used to create a new :term:`strong reference`."
msgstr ""
msgid "When done using the object, release is by calling :c:func:`Py_DECREF`."
msgstr ""
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XINCREF`."
msgstr ""
msgid ""
"Do not expect this function to actually modify *o* in any way. For at least :"
"pep:`some objects <0683>`, this function has no effect."
msgstr ""
msgid ""
"Similar to :c:func:`Py_INCREF`, but the object *o* can be ``NULL``, in which "
"case this has no effect."
msgstr ""
msgid "See also :c:func:`Py_XNewRef`."
msgstr ""
msgid ""
"Create a new :term:`strong reference` to an object: call :c:func:`Py_INCREF` "
"on *o* and return the object *o*."
msgstr ""
msgid ""
"When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` "
"should be called on it to release the reference."
msgstr ""
msgid ""
"The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be "
"``NULL``."
msgstr ""
msgid "For example::"
msgstr "Sebagai contoh::"
msgid ""
"Py_INCREF(obj);\n"
"self->attr = obj;"
msgstr ""
msgid "can be written as::"
msgstr ""
msgid "self->attr = Py_NewRef(obj);"
msgstr ""
msgid "See also :c:func:`Py_INCREF`."
msgstr ""
msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL."
msgstr ""
msgid "If the object *o* is ``NULL``, the function just returns ``NULL``."
msgstr ""
msgid ""
"Release a :term:`strong reference` to object *o*, indicating the reference "
"is no longer used."
msgstr ""
msgid ""
"Once the last :term:`strong reference` is released (i.e. the object's "
"reference count reaches 0), the object's type's deallocation function (which "
"must not be ``NULL``) is invoked."
msgstr ""
msgid ""
"This function is usually used to delete a :term:`strong reference` before "
"exiting its scope."
msgstr ""
msgid ""
"The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, "
"use :c:func:`Py_XDECREF`."
msgstr ""
msgid ""
"Do not expect this function to actually modify *o* in any way. For at least :"
"pep:`some objects <683>`, this function has no effect."
msgstr ""
msgid ""
"The deallocation function can cause arbitrary Python code to be invoked (e."
"g. when a class instance with a :meth:`~object.__del__` method is "
"deallocated). While exceptions in such code are not propagated, the "
"executed code has free access to all Python global variables. This means "
"that any object that is reachable from a global variable should be in a "
"consistent state before :c:func:`Py_DECREF` is invoked. For example, code "
"to delete an object from a list should copy a reference to the deleted "
"object in a temporary variable, update the list data structure, and then "
"call :c:func:`Py_DECREF` for the temporary variable."
msgstr ""
msgid ""
"Similar to :c:func:`Py_DECREF`, but the object *o* can be ``NULL``, in which "
"case this has no effect. The same warning from :c:func:`Py_DECREF` applies "
"here as well."
msgstr ""
msgid ""
"Release a :term:`strong reference` for object *o*. The object may be "
"``NULL``, in which case the macro has no effect; otherwise the effect is the "
"same as for :c:func:`Py_DECREF`, except that the argument is also set to "
"``NULL``. The warning for :c:func:`Py_DECREF` does not apply with respect "
"to the object passed because the macro carefully uses a temporary variable "
"and sets the argument to ``NULL`` before releasing the reference."
msgstr ""
msgid ""
"It is a good idea to use this macro whenever releasing a reference to an "
"object that might be traversed during garbage collection."
msgstr ""
msgid ""
"The macro argument is now only evaluated once. If the argument has side "
"effects, these are no longer duplicated."
msgstr ""
msgid ""
"Indicate taking a new :term:`strong reference` to object *o*. A function "
"version of :c:func:`Py_XINCREF`. It can be used for runtime dynamic "
"embedding of Python."
msgstr ""
msgid ""
"Release a :term:`strong reference` to object *o*. A function version of :c:"
"func:`Py_XDECREF`. It can be used for runtime dynamic embedding of Python."
msgstr ""
msgid ""
"Macro safely releasing a :term:`strong reference` to object *dst* and "
"setting *dst* to *src*."
msgstr ""
msgid "As in case of :c:func:`Py_CLEAR`, \"the obvious\" code can be deadly::"
msgstr ""
msgid ""
"Py_DECREF(dst);\n"
"dst = src;"
msgstr ""
msgid "The safe way is::"
msgstr ""
msgid "Py_SETREF(dst, src);"
msgstr ""
msgid ""
"That arranges to set *dst* to *src* *before* releasing the reference to the "
"old value of *dst*, so that any code triggered as a side-effect of *dst* "
"getting torn down no longer believes *dst* points to a valid object."
msgstr ""
msgid ""
"The macro arguments are now only evaluated once. If an argument has side "
"effects, these are no longer duplicated."
msgstr ""
msgid ""
"Variant of :c:macro:`Py_SETREF` macro that uses :c:func:`Py_XDECREF` instead "
"of :c:func:`Py_DECREF`."
msgstr ""