@@ -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
0 commit comments