# 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: # oon arfiandwi , 2021 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-05-09 14:19+0000\n" "PO-Revision-Date: 2021-06-28 00:50+0000\n" "Last-Translator: oon arfiandwi , 2021\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" #: ../../c-api/refcounting.rst:8 msgid "Reference Counting" msgstr "" #: ../../c-api/refcounting.rst:10 msgid "" "The functions and macros in this section are used for managing reference " "counts of Python objects." msgstr "" #: ../../c-api/refcounting.rst:16 msgid "Get the reference count of the Python object *o*." msgstr "" #: ../../c-api/refcounting.rst:18 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 "" #: ../../c-api/refcounting.rst:24 msgid "" "Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count." msgstr "" #: ../../c-api/refcounting.rst:28 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 "" #: ../../c-api/refcounting.rst:33 msgid "" "See also the function " ":c:func:`PyUnstable_Object_IsUniqueReferencedTemporary()`." msgstr "" #: ../../c-api/refcounting.rst:35 msgid ":c:func:`Py_REFCNT()` is changed to the inline static function." msgstr "" #: ../../c-api/refcounting.rst:38 msgid "The parameter type is no longer :c:expr:`const PyObject*`." msgstr "" #: ../../c-api/refcounting.rst:44 msgid "Set the object *o* reference counter to *refcnt*." msgstr "" #: ../../c-api/refcounting.rst:46 msgid "" "On :ref:`Python build with Free Threading `, if " "*refcnt* is larger than ``UINT32_MAX``, the object is made :term:`immortal`." msgstr "" #: ../../c-api/refcounting.rst:49 ../../c-api/refcounting.rst:62 #: ../../c-api/refcounting.rst:128 msgid "This function has no effect on :term:`immortal` objects." msgstr "" #: ../../c-api/refcounting.rst:53 ../../c-api/refcounting.rst:77 #: ../../c-api/refcounting.rst:156 msgid "Immortal objects are not modified." msgstr "" #: ../../c-api/refcounting.rst:59 msgid "" "Indicate taking a new :term:`strong reference` to object *o*, indicating it " "is in use and should not be destroyed." msgstr "" #: ../../c-api/refcounting.rst:64 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 "" #: ../../c-api/refcounting.rst:68 msgid "When done using the object, release is by calling :c:func:`Py_DECREF`." msgstr "" #: ../../c-api/refcounting.rst:70 msgid "" "The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, " "use :c:func:`Py_XINCREF`." msgstr "" #: ../../c-api/refcounting.rst:73 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 "" #: ../../c-api/refcounting.rst:83 msgid "" "Similar to :c:func:`Py_INCREF`, but the object *o* can be ``NULL``, in which" " case this has no effect." msgstr "" #: ../../c-api/refcounting.rst:86 msgid "See also :c:func:`Py_XNewRef`." msgstr "" #: ../../c-api/refcounting.rst:91 msgid "" "Create a new :term:`strong reference` to an object: call :c:func:`Py_INCREF`" " on *o* and return the object *o*." msgstr "" #: ../../c-api/refcounting.rst:94 msgid "" "When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` " "should be called on it to release the reference." msgstr "" #: ../../c-api/refcounting.rst:97 msgid "" "The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be " "``NULL``." msgstr "" #: ../../c-api/refcounting.rst:100 msgid "For example::" msgstr "Sebagai contoh::" #: ../../c-api/refcounting.rst:102 msgid "" "Py_INCREF(obj);\n" "self->attr = obj;" msgstr "" #: ../../c-api/refcounting.rst:105 msgid "can be written as::" msgstr "" #: ../../c-api/refcounting.rst:107 msgid "self->attr = Py_NewRef(obj);" msgstr "" #: ../../c-api/refcounting.rst:109 msgid "See also :c:func:`Py_INCREF`." msgstr "" #: ../../c-api/refcounting.rst:116 msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL." msgstr "" #: ../../c-api/refcounting.rst:118 msgid "If the object *o* is ``NULL``, the function just returns ``NULL``." msgstr "" #: ../../c-api/refcounting.rst:125 msgid "" "Release a :term:`strong reference` to object *o*, indicating the reference " "is no longer used." msgstr "" #: ../../c-api/refcounting.rst:130 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 "" #: ../../c-api/refcounting.rst:135 msgid "" "This function is usually used to delete a :term:`strong reference` before " "exiting its scope." msgstr "" #: ../../c-api/refcounting.rst:138 msgid "" "The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, " "use :c:func:`Py_XDECREF`." msgstr "" #: ../../c-api/refcounting.rst:141 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 "" #: ../../c-api/refcounting.rst:147 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 "" #: ../../c-api/refcounting.rst:162 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 "" #: ../../c-api/refcounting.rst:169 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 "" #: ../../c-api/refcounting.rst:177 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 "" #: ../../c-api/refcounting.rst:180 msgid "" "The macro argument is now only evaluated once. If the argument has side " "effects, these are no longer duplicated." msgstr "" #: ../../c-api/refcounting.rst:187 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 "" #: ../../c-api/refcounting.rst:194 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 "" #: ../../c-api/refcounting.rst:201 msgid "" "Macro safely releasing a :term:`strong reference` to object *dst* and " "setting *dst* to *src*." msgstr "" #: ../../c-api/refcounting.rst:204 msgid "As in case of :c:func:`Py_CLEAR`, \"the obvious\" code can be deadly::" msgstr "" #: ../../c-api/refcounting.rst:206 msgid "" "Py_DECREF(dst);\n" "dst = src;" msgstr "" #: ../../c-api/refcounting.rst:209 msgid "The safe way is::" msgstr "" #: ../../c-api/refcounting.rst:211 msgid "Py_SETREF(dst, src);" msgstr "" #: ../../c-api/refcounting.rst:213 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 "" #: ../../c-api/refcounting.rst:220 ../../c-api/refcounting.rst:232 msgid "" "The macro arguments are now only evaluated once. If an argument has side " "effects, these are no longer duplicated." msgstr "" #: ../../c-api/refcounting.rst:227 msgid "" "Variant of :c:macro:`Py_SETREF` macro that uses :c:func:`Py_XDECREF` instead" " of :c:func:`Py_DECREF`." msgstr ""