msgid"A call is made using a tuple for the positional arguments and a dict for the keyword arguments, similarly to ``callable(*args, **kwargs)`` in Python code. *args* must be non-NULL (use an empty tuple if there are no arguments) but *kwargs* may be *NULL* if there are no keyword arguments."
msgstr"فراخوانی با استفاده از یک تاپل برای آرگومانهای جایگاهی و یک دیکشنری برای آرگومانهای کلیدواژهای انجام میشود، مشابه ``callable(*args, **kwargs)`` در کد پایتون. *args* باید غیر NULL باشد (اگر آرگومانی وجود ندارد، از یک تاپل خالی استفاده کنید) اما *kwargs* در صورت نبود آرگومانهای کلیدواژهای میتواند *NULL* باشد."
msgid"This convention is not only used by *tp_call*: :c:member:`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_init` also pass arguments this way."
msgstr"این قرارداد تنها توسط *tp_call* استفاده نمیشود: :c:member:`~PyTypeObject.tp_new` و :c:member:`~PyTypeObject.tp_init` نیز آرگومانها را به این روش پاس میدهند."
msgid"To call an object, use :c:func:`PyObject_Call` or another :ref:`call API <capi-call>`."
msgstr"برای فراخوانی یک شیء، از :c:func:`PyObject_Call` یا :ref:`API فراخوانی <capi-call>` دیگری استفاده کنید."
msgid"The Vectorcall Protocol"
msgstr"پروتکل Vectorcall"
msgid"The vectorcall protocol was introduced in :pep:`590` as an additional protocol for making calls more efficient."
msgstr"پروتکل vectorcall در :pep:`590` بهعنوان پروتکلی اضافی برای کارآمدتر کردن فراخوانیها معرفی شد."
msgid"As rule of thumb, CPython will prefer the vectorcall for internal calls if the callable supports it. However, this is not a hard rule. Additionally, some third-party extensions use *tp_call* directly (rather than using :c:func:`PyObject_Call`). Therefore, a class supporting vectorcall must also implement :c:member:`~PyTypeObject.tp_call`. Moreover, the callable must behave the same regardless of which protocol is used. The recommended way to achieve this is by setting :c:member:`~PyTypeObject.tp_call` to :c:func:`PyVectorcall_Call`. This bears repeating:"
msgstr "به عنوان یک قاعده سرانگشتی، سیپایتون برای فراخوانیهای داخلی vectorcall را ترجیح میدهد، مشروط به اینکه فراخوانیپذیر از آن پشتیبانی کند. با این حال، این یک قاعده سفت و سخت نیست. افزون بر این، برخی افزونههای شخص ثالث مستقیماً از *tp_call* استفاده میکنند (بهجای استفاده از :c:func:`PyObject_Call`). بنابراین، کلاسی که از vectorcall پشتیبانی میکند باید :c:member:`~PyTypeObject.tp_call` را نیز پیادهسازی کند. بهعلاوه، فراخوانیپذیر باید فارغ از اینکه از کدام پروتکل استفاده میشود، رفتار یکسانی داشته باشد. راه توصیهشده برای دستیابی به این هدف، تنظیم :c:member:`~PyTypeObject.tp_call` روی :c:func:`PyVectorcall_Call` است. این نکته شایان تکرار است:"
msgid"A class supporting vectorcall **must** also implement :c:member:`~PyTypeObject.tp_call` with the same semantics."
msgstr"کلاسی که از vectorcall پشتیبانی میکند، **باید** :c:member:`~PyTypeObject.tp_call` را نیز با همان معناشناسی پیادهسازی کند."
msgid"The :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class when the class's :py:meth:`~object.__call__` method is reassigned. (This internally sets :c:member:`~PyTypeObject.tp_call` only, and thus may make it behave differently than the vectorcall function.) In earlier Python versions, vectorcall should only be used with :c:macro:`immutable <Py_TPFLAGS_IMMUTABLETYPE>` or static types."
msgstr"پرچم :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` اکنون هنگامی از یک کلاس حذف میشود که متد :py:meth:`~object.__call__` آن کلاس دوباره انتساب داده شود. (این کار بهطور داخلی فقط :c:member:`~PyTypeObject.tp_call` را تنظیم میکند و در نتیجه ممکن است رفتار آن متفاوت از تابع vectorcall باشد.) در نسخههای پیشین پایتون، vectorcall باید فقط با نوعهای :c:macro:`تغییرناپذیر <Py_TPFLAGS_IMMUTABLETYPE>` یا ایستا استفاده شود."
msgid"A class should not implement vectorcall if that would be slower than *tp_call*. For example, if the callee needs to convert the arguments to an args tuple and kwargs dict anyway, then there is no point in implementing vectorcall."
msgstr"یک کلاس نباید vectorcall را پیادهسازی کند اگر این کار کندتر از *tp_call* باشد. برای مثال، اگر فراخوانیشونده به هر حال نیاز داشته باشد که آرگومانها را به تاپل args و دیکشنری kwargs تبدیل کند، آنگاه پیادهسازی vectorcall فایدهای ندارد."
msgid"Classes can implement the vectorcall protocol by enabling the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag and setting :c:member:`~PyTypeObject.tp_vectorcall_offset` to the offset inside the object structure where a *vectorcallfunc* appears. This is a pointer to a function with the following signature:"
msgstr"کلاسها میتوانند پروتکل vectorcall را با فعال کردن پرچم :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` و تنظیم :c:member:`~PyTypeObject.tp_vectorcall_offset` به آفست درون ساختار شیء که یک *vectorcallfunc* در آن قرار دارد، پیادهسازی کنند. این یک اشارهگر به تابعی با امضای زیر است:"
msgid"*callable* is the object being called."
msgstr"*callable* شیءی است که فراخوانی میشود."
msgid"*args* is a C array consisting of the positional arguments followed by the"
msgstr"*args* یک آرایهی C است که از آرگومانهای جایگاهی تشکیل شده و به دنبال آن"
msgid"values of the keyword arguments. This can be *NULL* if there are no arguments."
msgstr"مقادیر آرگومانهای کلیدواژهای. در صورت نبود آرگومان، این میتواند *NULL* باشد."
msgid"*nargsf* is the number of positional arguments plus possibly the"
msgstr"*nargsf* تعداد آرگومانهای جایگاهی است بهعلاوه احتمالاً"
msgid":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` flag. To get the actual number of positional arguments from *nargsf*, use :c:func:`PyVectorcall_NARGS`."
msgstr"پرچم :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`. برای بهدستآوردن تعداد واقعی آرگومانهای جایگاهی از *nargsf*، از :c:func:`PyVectorcall_NARGS` استفاده کنید."
msgid"*kwnames* is a tuple containing the names of the keyword arguments;"
msgstr"*kwnames* تاپلی است که نامهای آرگومانهای کلیدواژهای را در بر دارد؛"
msgid"in other words, the keys of the kwargs dict. These names must be strings (instances of ``str`` or a subclass) and they must be unique. If there are no keyword arguments, then *kwnames* can instead be *NULL*."
msgstr"به عبارت دیگر، کلیدهای دیکشنری kwargs. این نامها باید رشته باشند (نمونههایی از ``str`` یا یک زیرکلاس) و باید یکتا باشند. اگر آرگومان کلیدواژهای وجود نداشته باشد، *kwnames* میتواند بهجای آن *NULL* باشد."
msgid"If this flag is set in a vectorcall *nargsf* argument, the callee is allowed to temporarily change ``args[-1]``. In other words, *args* points to argument 1 (not 0) in the allocated vector. The callee must restore the value of ``args[-1]`` before returning."
msgstr"اگر این پرچم در آرگومان *nargsf* مربوط به vectorcall تنظیم شده باشد، به فراخوانیشونده اجازه داده میشود که ``args[-1]`` را بهطور موقت تغییر دهد. به عبارت دیگر، *args* به آرگومان ۱ (نه ۰) در بردار تخصیصیافته اشاره میکند. فراخوانیشونده باید پیش از بازگشت، مقدار ``args[-1]`` را بازگرداند."
msgid"For :c:func:`PyObject_VectorcallMethod`, this flag means instead that ``args[0]`` may be changed."
msgstr"برای :c:func:`PyObject_VectorcallMethod`، این پرچم در عوض به این معنا است که ``args[0]`` ممکن است تغییر کند."
msgid"Whenever they can do so cheaply (without additional allocation), callers are encouraged to use :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will allow callables such as bound methods to make their onward calls (which include a prepended *self* argument) very efficiently."
msgstr"هرگاه بتوانند این کار را با هزینهی اندکی انجام دهند (بدون تخصیص اضافی)، به فراخوانکنندگان توصیه میشود که از :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` استفاده کنند. انجام این کار به فراخوانیپذیرهایی مانند متدهای مقید اجازه میدهد تا فراخوانیهای بعدی خود (که آرگومان *self* در ابتدای آنها افزوده شده است) را بهطور بسیار کارآمد انجام دهند."
msgid"To call an object that implements vectorcall, use a :ref:`call API <capi-call>` function as with any other callable. :c:func:`PyObject_Vectorcall` will usually be most efficient."
msgstr"برای فراخوانی شیءای که vectorcall را پیادهسازی میکند، مانند هر فراخوانیپذیر دیگری از یک تابع :ref:`API فراخوانی <capi-call>` استفاده کنید. :c:func:`PyObject_Vectorcall` معمولاً کارآمدترین خواهد بود."
msgid"Recursion Control"
msgstr"کنترل بازگشت"
msgid"When using *tp_call*, callees do not need to worry about :ref:`recursion <recursion>`: CPython uses :c:func:`Py_EnterRecursiveCall` and :c:func:`Py_LeaveRecursiveCall` for calls made using *tp_call*."
msgstr"هنگام استفاده از *tp_call*، لازم نیست فراخوانیشدهها نگران :ref:`بازگشتی <recursion>` باشند: سیپایتون برای فراخوانیهایی که با استفاده از *tp_call* انجام میشوند، از :c:func:`Py_EnterRecursiveCall` و :c:func:`Py_LeaveRecursiveCall` استفاده میکند."
msgid"For efficiency, this is not the case for calls done using vectorcall: the callee should use *Py_EnterRecursiveCall* and *Py_LeaveRecursiveCall* if needed."
msgstr"برای کارایی، این موضوع در مورد فراخوانیهایی که با استفاده از vectorcall انجام میشوند صدق نمیکند: فراخوانیشونده باید در صورت نیاز از *Py_EnterRecursiveCall* و *Py_LeaveRecursiveCall* استفاده کند."
msgid"Vectorcall Support API"
msgstr"API پشتیبانی Vectorcall"
msgid"Given a vectorcall *nargsf* argument, return the actual number of arguments. Currently equivalent to::"
msgstr"با دریافت آرگومان *nargsf* در فراخوانی برداری (vectorcall)، تعداد واقعی آرگومانها را برمیگرداند. در حال حاضر معادل است با::"
msgid"However, the function ``PyVectorcall_NARGS`` should be used to allow for future extensions."
msgstr"با این حال، برای پشتیبانی از توسعههای آینده، باید از تابع ``PyVectorcall_NARGS`` استفاده شود."
msgid"If *op* does not support the vectorcall protocol (either because the type does not or because the specific instance does not), return *NULL*. Otherwise, return the vectorcall function pointer stored in *op*. This function never raises an exception."
msgstr"اگر *op* از پروتکل فراخوانی برداری پشتیبانی نکند (چه به این دلیل که نوع آن پشتیبانی نکند و چه به این دلیل که نمونهی خاص پشتیبانی نکند)، مقدار *NULL* برگردانده میشود. در غیر این صورت، اشارهگر تابع vectorcall ذخیرهشده در *op* برگردانده میشود. این تابع هرگز استثنا ایجاد نمیکند."
msgid"This is mostly useful to check whether or not *op* supports vectorcall, which can be done by checking ``PyVectorcall_Function(op) != NULL``."
msgstr"این عمدتاً برای بررسی اینکه آیا *op* از vectorcall پشتیبانی میکند یا خیر مفید است؛ این کار را میتوان با بررسی ``PyVectorcall_Function(op) != NULL`` انجام داد."
msgid"Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword arguments given in a tuple and dict, respectively."
msgstr"تابع :c:type:`vectorcallfunc` مربوط به *callable* را با آرگومانهای جایگاهی و کلیدواژهایِ دادهشده بهترتیب در یک تاپل و یک دیکشنری فراخوانی کنید."
msgid"This is a specialized function, intended to be put in the :c:member:`~PyTypeObject.tp_call` slot or be used in an implementation of ``tp_call``. It does not check the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag and it does not fall back to ``tp_call``."
msgstr"این یک تابع تخصصی است که در نظر گرفته شده است تا در جایگاه :c:member:`~PyTypeObject.tp_call` قرار گیرد یا در پیادهسازی ``tp_call`` استفاده شود. این تابع پرچم :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` را بررسی نمیکند و به ``tp_call`` بازنمیگردد."
msgid"Object Calling API"
msgstr"API فراخوانی شیء"
msgid"Various functions are available for calling a Python object. Each converts its arguments to a convention supported by the called object – either *tp_call* or vectorcall. In order to do as little conversion as possible, pick one that best fits the format of data you have available."
msgstr"توابع گوناگونی برای فراخوانی یک شیء پایتون در دسترس هستند. هر یک از این توابع، آرگومانهای خود را به قراردادی که شیء فراخوانیشده از آن پشتیبانی میکند — یعنی *tp_call* یا vectorcall — تبدیل میکند. برای انجام کمترین تبدیل ممکن، تابعی را انتخاب کنید که بهترین تناسب را با قالب دادههای در دسترس شما دارد."
msgid"The following table summarizes the available functions; please see individual documentation for details."
msgstr"جدول زیر خلاصهای از توابع موجود را ارائه میدهد؛ برای جزئیات، لطفاً به مستندات هر یک مراجعه کنید."
msgid"Function"
msgstr"تابع"
msgid"callable"
msgstr"فراخوانیپذیر"
msgid"args"
msgstr"args"
msgid"kwargs"
msgstr"kwargs"
msgid":c:func:`PyObject_Call`"
msgstr":c:func:`PyObject_Call`"
msgid"``PyObject *``"
msgstr"``PyObject *``"
msgid"tuple"
msgstr"تاپل"
msgid"dict/``NULL``"
msgstr"dict/``NULL``"
msgid":c:func:`PyObject_CallNoArgs`"
msgstr":c:func:`PyObject_CallNoArgs`"
msgid"---"
msgstr"---"
msgid":c:func:`PyObject_CallOneArg`"
msgstr":c:func:`PyObject_CallOneArg`"
msgid"1 object"
msgstr"۱ شیء"
msgid":c:func:`PyObject_CallObject`"
msgstr":c:func:`PyObject_CallObject`"
msgid"tuple/``NULL``"
msgstr"تاپل/``NULL``"
msgid":c:func:`PyObject_CallFunction`"
msgstr":c:func:`PyObject_CallFunction`"
msgid"format"
msgstr"قالب"
msgid":c:func:`PyObject_CallMethod`"
msgstr":c:func:`PyObject_CallMethod`"
msgid"obj + ``char*``"
msgstr"obj + ``char*``"
msgid":c:func:`PyObject_CallFunctionObjArgs`"
msgstr":c:func:`PyObject_CallFunctionObjArgs`"
msgid"variadic"
msgstr"variadic"
msgid":c:func:`PyObject_CallMethodObjArgs`"
msgstr":c:func:`PyObject_CallMethodObjArgs`"
msgid"obj + name"
msgstr"obj + name"
msgid":c:func:`PyObject_CallMethodNoArgs`"
msgstr":c:func:`PyObject_CallMethodNoArgs`"
msgid":c:func:`PyObject_CallMethodOneArg`"
msgstr":c:func:`PyObject_CallMethodOneArg`"
msgid":c:func:`PyObject_Vectorcall`"
msgstr":c:func:`PyObject_Vectorcall`"
msgid"vectorcall"
msgstr"فراخوانی برداری"
msgid":c:func:`PyObject_VectorcallDict`"
msgstr":c:func:`PyObject_VectorcallDict`"
msgid":c:func:`PyObject_VectorcallMethod`"
msgstr":c:func:`PyObject_VectorcallMethod`"
msgid"arg + name"
msgstr"arg + name"
msgid"Call a callable Python object *callable*, with arguments given by the tuple *args*, and named arguments given by the dictionary *kwargs*."
msgstr"شیء فراخوانیپذیر پایتون *callable* را با آرگومانهایی که توسط تاپل *args* داده شدهاند و آرگومانهای نامداری که توسط دیکشنری *kwargs* داده شدهاند، فراخوانی میکند."
msgid"*args* must not be *NULL*; use an empty tuple if no arguments are needed. If no named arguments are needed, *kwargs* can be *NULL*."
msgstr"*args* نباید *NULL* باشد؛ اگر هیچ آرگومانی لازم نیست، از یک تاپل خالی استفاده کنید. اگر هیچ آرگومان نامداری لازم نیست، *kwargs* میتواند *NULL* باشد."
msgid"Return the result of the call on success, or raise an exception and return *NULL* on failure."
msgstr"در صورت موفقیت، نتیجهی فراخوانی را برمیگرداند، یا در صورت شکست، استثنا ایجاد کرده و *NULL* را برمیگرداند."
msgid"This is the equivalent of the Python expression: ``callable(*args, **kwargs)``."
msgid"Call a callable Python object *callable* without any arguments. It is the most efficient way to call a callable Python object without any argument."
msgstr"یک شیء پایتونی فراخوانیپذیر *callable* را بدون هیچ آرگومانی فراخوانی میکند. این کارآمدترین راه برای فراخوانی یک شیء پایتونی فراخوانیپذیر بدون هیچ آرگومانی است."
msgid"Call a callable Python object *callable* with exactly 1 positional argument *arg* and no keyword arguments."
msgstr"یک شیء فراخوانیپذیر پایتون *callable* را با دقیقاً ۱ آرگومان جایگاهی *arg* و بدون هیچ آرگومان کلیدواژهای فراخوانی میکند."
msgid"Call a callable Python object *callable*, with arguments given by the tuple *args*. If no arguments are needed, then *args* can be *NULL*."
msgstr"شیء فراخوانیپذیر پایتون *callable* را با آرگومانهای دادهشده توسط تاپل *args* فراخوانی میکند. اگر نیازی به آرگومان نباشد، *args* میتواند *NULL* باشد."
msgid"This is the equivalent of the Python expression: ``callable(*args)``."
msgstr"این معادل عبارت زیر در پایتون است: ``callable(*args)``."
msgid"Call a callable Python object *callable*, with a variable number of C arguments. The C arguments are described using a :c:func:`Py_BuildValue` style format string. The format can be *NULL*, indicating that no arguments are provided."
msgstr"شیء پایتون فراخوانیپذیر *callable* را با تعداد متغیری از آرگومانهای C فراخوانی میکند. آرگومانهای C با استفاده از رشته قالب به سبک :c:func:`Py_BuildValue` توصیف میشوند. قالب میتواند *NULL* باشد که نشان میدهد هیچ آرگومانی ارائه نشده است."
msgid"Note that if you only pass :c:expr:`PyObject *` args, :c:func:`PyObject_CallFunctionObjArgs` is a faster alternative."
msgstr"توجه داشته باشید که اگر فقط آرگومانهای :c:expr:`PyObject *` را ارسال کنید، :c:func:`PyObject_CallFunctionObjArgs` جایگزین سریعتری است."
msgid"The type of *format* was changed from ``char *``."
msgstr"نوع *format* از ``char *`` تغییر کرد."
msgid"Call the method named *name* of object *obj* with a variable number of C arguments. The C arguments are described by a :c:func:`Py_BuildValue` format string that should produce a tuple."
msgstr"متدی با نام *name* از شیء *obj* را با تعداد متغیری از آرگومانهای C فراخوانی میکند. آرگومانهای C توسط یک رشته قالب :c:func:`Py_BuildValue` توصیف میشوند که باید یک تاپل تولید کند."
msgid"The format can be *NULL*, indicating that no arguments are provided."
msgstr"قالب میتواند *NULL* باشد که نشان میدهد هیچ آرگومانی ارائه نمیشود."
msgid"This is the equivalent of the Python expression: ``obj.name(arg1, arg2, ...)``."
msgid"Note that if you only pass :c:expr:`PyObject *` args, :c:func:`PyObject_CallMethodObjArgs` is a faster alternative."
msgstr"توجه داشته باشید که اگر تنها آرگومانهایی از نوع :c:expr:`PyObject *` را عبور میدهید، :c:func:`PyObject_CallMethodObjArgs` جایگزین سریعتری است."
msgid"The types of *name* and *format* were changed from ``char *``."
msgstr"نوعهای *name* و *format* از ``char *`` تغییر یافتند."
msgid"Call a callable Python object *callable*, with a variable number of :c:expr:`PyObject *` arguments. The arguments are provided as a variable number of parameters followed by *NULL*."
msgstr"یک شیء پایتونی فراخوانیپذیر *callable* را با تعداد متغیری آرگومان :c:expr:`PyObject *` فراخوانی میکند. آرگومانها بهصورت تعداد متغیری پارامتر و بهدنبال آن *NULL* ارائه میشوند."
msgid"This is the equivalent of the Python expression: ``callable(arg1, arg2, ...)``."
msgid"Call a method of the Python object *obj*, where the name of the method is given as a Python string object in *name*. It is called with a variable number of :c:expr:`PyObject *` arguments. The arguments are provided as a variable number of parameters followed by *NULL*."
msgstr"متدی از شیء پایتونی *obj* را فراخوانی میکند که نام آن بهصورت یک شیء رشته پایتون در *name* داده شده است. این متد با تعداد متغیری از آرگومانهای :c:expr:`PyObject *` فراخوانی میشود. آرگومانها بهصورت تعداد متغیری از پارامترها و در پایان *NULL* ارائه میشوند."
msgid"Call a method of the Python object *obj* without arguments, where the name of the method is given as a Python string object in *name*."
msgstr"متدی از شیء پایتون *obj* را بدون آرگومان فراخوانی میکند، که در آن نام متد بهصورت یک شیء رشته پایتون در *name* داده شده است."
msgid"Call a method of the Python object *obj* with a single positional argument *arg*, where the name of the method is given as a Python string object in *name*."
msgstr"متدی از شیء پایتون *obj* را با تنها یک آرگومان جایگاهی *arg* فراخوانی میکند، که نام متد بهصورت یک شیء رشته پایتون در *name* داده میشود."
msgid"Call a callable Python object *callable*. The arguments are the same as for :c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this directly calls the vectorcall function stored in *callable*."
msgstr"شیء پایتونی فراخوانیپذیر *callable* را فراخوانی میکند. آرگومانها همانند آرگومانهای :c:type:`vectorcallfunc` هستند. اگر *callable* از vectorcall_ پشتیبانی کند، این تابع مستقیماً تابع vectorcall ذخیرهشده در *callable* را فراخوانی میکند."
msgid"as ``_PyObject_Vectorcall``"
msgstr"بهعنوان ``_PyObject_Vectorcall``"
msgid"Renamed to the current name, without the leading underscore. The old provisional name is :term:`soft deprecated`."
msgstr"به نام کنونی تغییر نام داده شد، بدون زیرخط ابتدایی. نام آزمایشی قبلی :term:`soft deprecated` است."
msgid"Call *callable* with positional arguments passed exactly as in the vectorcall_ protocol, but with keyword arguments passed as a dictionary *kwdict*. The *args* array contains only the positional arguments."
msgstr"فراخوانیپذیر *callable* را با آرگومانهای جایگاهی که دقیقاً مطابق پروتکل vectorcall_ ارسال میشوند فراخوانی میکند، اما آرگومانهای کلیدواژهای بهصورت دیکشنری *kwdict* ارسال میشوند. آرایه *args* فقط شامل آرگومانهای جایگاهی است."
msgid"Regardless of which protocol is used internally, a conversion of arguments needs to be done. Therefore, this function should only be used if the caller already has a dictionary ready to use for the keyword arguments, but not a tuple for the positional arguments."
msgstr"صرفنظر از اینکه کدام پروتکل بهطور داخلی استفاده میشود، باید تبدیلی روی آرگومانها انجام شود. بنابراین، این تابع تنها زمانی باید استفاده شود که فراخوانکننده از قبل دیکشنری آمادهای برای آرگومانهای کلیدواژهای داشته باشد، اما تاپلی برای آرگومانهای جایگاهی نداشته باشد."
msgid"Call a method using the vectorcall calling convention. The name of the method is given as a Python string *name*. The object whose method is called is *args[0]*, and the *args* array starting at *args[1]* represents the arguments of the call. There must be at least one positional argument. *nargsf* is the number of positional arguments including *args[0]*, plus :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` if the value of ``args[0]`` may temporarily be changed. Keyword arguments can be passed just like in :c:func:`PyObject_Vectorcall`."
msgstr"یک متد را با استفاده از قرارداد فراخوانی vectorcall فراخوانی کنید. نام متد به صورت رشته پایتون *name* داده میشود. شیءای که متد آن فراخوانی میشود *args[0]* است و آرایه *args* که از *args[1]* آغاز میشود، آرگومانهای فراخوانی را نشان میدهد. باید حداقل یک آرگومان جایگاهی وجود داشته باشد. *nargsf* تعداد آرگومانهای جایگاهی شامل *args[0]* است، بهعلاوه :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` در صورتی که مقدار ``args[0]`` ممکن است بهطور موقت تغییر کند. آرگومانهای کلیدواژهای را میتوان دقیقاً مشابه :c:func:`PyObject_Vectorcall` ارسال کرد."
msgid"If the object has the :c:macro:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this will call the unbound method object with the full *args* vector as arguments."
msgstr"اگر شیء قابلیت :c:macro:`Py_TPFLAGS_METHOD_DESCRIPTOR` را داشته باشد، این، شیء متد غیرمقید را با بردار کامل *args* بهعنوان آرگومانها فراخوانی میکند."
msgid"Call Support API"
msgstr"API پشتیبانی فراخوانی"
msgid"Determine if the object *o* is callable. Return ``1`` if the object is callable and ``0`` otherwise. This function always succeeds."
msgstr"تعیین میکند که آیا شیء *o* فراخوانیپذیر است یا خیر. اگر شیء فراخوانیپذیر باشد ``1`` و در غیر این صورت ``0`` را برمیگرداند. این تابع همیشه با موفقیت اجرا میشود."