A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/python/cpython/commit/9a13a388f202268dd7b771638adbec132449b98b below:

expand call protocol documentation (GH-13844) · python/cpython@9a13a38 · GitHub

@@ -248,246 +248,6 @@ Object Protocol

248 248

of base classes).

249 249 250 250 251 -

.. c:function:: int PyCallable_Check(PyObject *o)

252 - 253 -

Determine if the object *o* is callable. Return ``1`` if the object is callable

254 -

and ``0`` otherwise. This function always succeeds.

255 - 256 - 257 -

.. c:function:: PyObject* PyObject_CallNoArgs(PyObject *callable)

258 - 259 -

Call a callable Python object *callable* without any arguments. It is the

260 -

most efficient way to call a callable Python object without any argument.

261 - 262 -

Return the result of the call on success, or raise an exception and return

263 -

``NULL`` on failure.

264 - 265 -

.. versionadded:: 3.9

266 - 267 - 268 -

.. c:function:: PyObject* _PyObject_CallOneArg(PyObject *callable, PyObject *arg)

269 - 270 -

Call a callable Python object *callable* with exactly 1 positional argument

271 -

*arg* and no keyword arguments.

272 - 273 -

Return the result of the call on success, or raise an exception and return

274 -

``NULL`` on failure.

275 - 276 -

.. versionadded:: 3.9

277 - 278 - 279 -

.. c:function:: PyObject* PyObject_Call(PyObject *callable, PyObject *args, PyObject *kwargs)

280 - 281 -

Call a callable Python object *callable*, with arguments given by the

282 -

tuple *args*, and named arguments given by the dictionary *kwargs*.

283 - 284 -

*args* must not be ``NULL``, use an empty tuple if no arguments are needed.

285 -

If no named arguments are needed, *kwargs* can be ``NULL``.

286 - 287 -

Return the result of the call on success, or raise an exception and return

288 -

``NULL`` on failure.

289 - 290 -

This is the equivalent of the Python expression:

291 -

``callable(*args, **kwargs)``.

292 - 293 - 294 -

.. c:function:: PyObject* PyObject_CallObject(PyObject *callable, PyObject *args)

295 - 296 -

Call a callable Python object *callable*, with arguments given by the

297 -

tuple *args*. If no arguments are needed, then *args* can be ``NULL``.

298 - 299 -

Return the result of the call on success, or raise an exception and return

300 -

``NULL`` on failure.

301 - 302 -

This is the equivalent of the Python expression: ``callable(*args)``.

303 - 304 - 305 -

.. c:function:: PyObject* PyObject_CallFunction(PyObject *callable, const char *format, ...)

306 - 307 -

Call a callable Python object *callable*, with a variable number of C arguments.

308 -

The C arguments are described using a :c:func:`Py_BuildValue` style format

309 -

string. The format can be ``NULL``, indicating that no arguments are provided.

310 - 311 -

Return the result of the call on success, or raise an exception and return

312 -

``NULL`` on failure.

313 - 314 -

This is the equivalent of the Python expression: ``callable(*args)``.

315 - 316 -

Note that if you only pass :c:type:`PyObject \*` args,

317 -

:c:func:`PyObject_CallFunctionObjArgs` is a faster alternative.

318 - 319 -

.. versionchanged:: 3.4

320 -

The type of *format* was changed from ``char *``.

321 - 322 - 323 -

.. c:function:: PyObject* PyObject_CallMethod(PyObject *obj, const char *name, const char *format, ...)

324 - 325 -

Call the method named *name* of object *obj* with a variable number of C

326 -

arguments. The C arguments are described by a :c:func:`Py_BuildValue` format

327 -

string that should produce a tuple.

328 - 329 -

The format can be ``NULL``, indicating that no arguments are provided.

330 - 331 -

Return the result of the call on success, or raise an exception and return

332 -

``NULL`` on failure.

333 - 334 -

This is the equivalent of the Python expression:

335 -

``obj.name(arg1, arg2, ...)``.

336 - 337 -

Note that if you only pass :c:type:`PyObject \*` args,

338 -

:c:func:`PyObject_CallMethodObjArgs` is a faster alternative.

339 - 340 -

.. versionchanged:: 3.4

341 -

The types of *name* and *format* were changed from ``char *``.

342 - 343 - 344 -

.. c:function:: PyObject* PyObject_CallFunctionObjArgs(PyObject *callable, ..., NULL)

345 - 346 -

Call a callable Python object *callable*, with a variable number of

347 -

:c:type:`PyObject\*` arguments. The arguments are provided as a variable number

348 -

of parameters followed by ``NULL``.

349 - 350 -

Return the result of the call on success, or raise an exception and return

351 -

``NULL`` on failure.

352 - 353 -

This is the equivalent of the Python expression:

354 -

``callable(arg1, arg2, ...)``.

355 - 356 - 357 -

.. c:function:: PyObject* PyObject_CallMethodObjArgs(PyObject *obj, PyObject *name, ..., NULL)

358 - 359 -

Calls a method of the Python object *obj*, where the name of the method is given as a

360 -

Python string object in *name*. It is called with a variable number of

361 -

:c:type:`PyObject\*` arguments. The arguments are provided as a variable number

362 -

of parameters followed by ``NULL``.

363 - 364 -

Return the result of the call on success, or raise an exception and return

365 -

``NULL`` on failure.

366 - 367 - 368 -

.. c:function:: PyObject* _PyObject_CallMethodNoArgs(PyObject *obj, PyObject *name)

369 - 370 -

Call a method of the Python object *obj* without arguments,

371 -

where the name of the method is given as a Python string object in *name*.

372 - 373 -

Return the result of the call on success, or raise an exception and return

374 -

``NULL`` on failure.

375 - 376 -

.. versionadded:: 3.9

377 - 378 - 379 -

.. c:function:: PyObject* _PyObject_CallMethodOneArg(PyObject *obj, PyObject *name, PyObject *arg)

380 - 381 -

Call a method of the Python object *obj* with a single positional argument

382 -

*arg*, where the name of the method is given as a Python string object in

383 -

*name*.

384 - 385 -

Return the result of the call on success, or raise an exception and return

386 -

``NULL`` on failure.

387 - 388 -

.. versionadded:: 3.9

389 - 390 - 391 -

.. c:function:: PyObject* _PyObject_Vectorcall(PyObject *callable, PyObject *const *args, size_t nargsf, PyObject *kwnames)

392 - 393 -

Call a callable Python object *callable*, using

394 -

:c:data:`vectorcall <PyTypeObject.tp_vectorcall_offset>` if possible.

395 - 396 -

*args* is a C array with the positional arguments.

397 - 398 -

*nargsf* is the number of positional arguments plus optionally the flag

399 -

:const:`PY_VECTORCALL_ARGUMENTS_OFFSET` (see below).

400 -

To get actual number of arguments, use

401 -

:c:func:`PyVectorcall_NARGS(nargsf) <PyVectorcall_NARGS>`.

402 - 403 -

*kwnames* can be either ``NULL`` (no keyword arguments) or a tuple of keyword

404 -

names, which must be strings. In the latter case, the values of the keyword

405 -

arguments are stored in *args* after the positional arguments.

406 -

The number of keyword arguments does not influence *nargsf*.

407 - 408 -

*kwnames* must contain only objects of type ``str`` (not a subclass),

409 -

and all keys must be unique.

410 - 411 -

Return the result of the call on success, or raise an exception and return

412 -

``NULL`` on failure.

413 - 414 -

This uses the vectorcall protocol if the callable supports it;

415 -

otherwise, the arguments are converted to use

416 -

:c:member:`~PyTypeObject.tp_call`.

417 - 418 -

.. note::

419 - 420 -

This function is provisional and expected to become public in Python 3.9,

421 -

with a different name and, possibly, changed semantics.

422 -

If you use the function, plan for updating your code for Python 3.9.

423 - 424 -

.. versionadded:: 3.8

425 - 426 -

.. c:var:: PY_VECTORCALL_ARGUMENTS_OFFSET

427 - 428 -

If set in a vectorcall *nargsf* argument, the callee is allowed to

429 -

temporarily change ``args[-1]``. In other words, *args* points to

430 -

argument 1 (not 0) in the allocated vector.

431 -

The callee must restore the value of ``args[-1]`` before returning.

432 - 433 -

For :c:func:`_PyObject_VectorcallMethod`, this flag means instead that

434 -

``args[0]`` may be changed.

435 - 436 -

Whenever they can do so cheaply (without additional allocation), callers

437 -

are encouraged to use :const:`PY_VECTORCALL_ARGUMENTS_OFFSET`.

438 -

Doing so will allow callables such as bound methods to make their onward

439 -

calls (which include a prepended *self* argument) cheaply.

440 - 441 -

.. versionadded:: 3.8

442 - 443 -

.. c:function:: Py_ssize_t PyVectorcall_NARGS(size_t nargsf)

444 - 445 -

Given a vectorcall *nargsf* argument, return the actual number of

446 -

arguments.

447 -

Currently equivalent to ``nargsf & ~PY_VECTORCALL_ARGUMENTS_OFFSET``.

448 - 449 -

.. versionadded:: 3.8

450 - 451 -

.. c:function:: PyObject* _PyObject_FastCallDict(PyObject *callable, PyObject *const *args, size_t nargsf, PyObject *kwdict)

452 - 453 -

Same as :c:func:`_PyObject_Vectorcall` except that the keyword arguments

454 -

are passed as a dictionary in *kwdict*. This may be ``NULL`` if there

455 -

are no keyword arguments.

456 - 457 -

For callables supporting :c:data:`vectorcall <PyTypeObject.tp_vectorcall_offset>`,

458 -

the arguments are internally converted to the vectorcall convention.

459 -

Therefore, this function adds some overhead compared to

460 -

:c:func:`_PyObject_Vectorcall`.

461 -

It should only be used if the caller already has a dictionary ready to use.

462 - 463 -

.. note::

464 - 465 -

This function is provisional and expected to become public in Python 3.9,

466 -

with a different name and, possibly, changed semantics.

467 -

If you use the function, plan for updating your code for Python 3.9.

468 - 469 -

.. versionadded:: 3.8

470 - 471 -

.. c:function:: PyObject* _PyObject_VectorcallMethod(PyObject *name, PyObject *const *args, size_t nargsf, PyObject *kwnames)

472 - 473 -

Call a method using the vectorcall calling convention. The name of the method

474 -

is given as Python string *name*. The object whose method is called is

475 -

*args[0]* and the *args* array starting at *args[1]* represents the arguments

476 -

of the call. There must be at least one positional argument.

477 -

*nargsf* is the number of positional arguments including *args[0]*,

478 -

plus :const:`PY_VECTORCALL_ARGUMENTS_OFFSET` if the value of ``args[0]`` may

479 -

temporarily be changed. Keyword arguments can be passed just like in

480 -

:c:func:`_PyObject_Vectorcall`.

481 - 482 -

If the object has the :const:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature,

483 -

this will actually call the unbound method object with the full

484 -

*args* vector as arguments.

485 - 486 -

Return the result of the call on success, or raise an exception and return

487 -

``NULL`` on failure.

488 - 489 -

.. versionadded:: 3.9

490 - 491 251

.. c:function:: Py_hash_t PyObject_Hash(PyObject *o)

492 252 493 253

.. index:: builtin: hash


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4