Используя Python C API, как я могу написать функцию, которая принимает любое количество аргументов, включая ни одного вообще? - PullRequest
0 голосов
/ 12 апреля 2019

METH_VARARGS требуется хотя бы один аргумент; METH_NOARGS, кажется, не дает мне пройти вообще.

Как определить функцию build(), которую можно вызвать как build() или build(True) / build(False)?

Вызов функции METH_VARARGS без аргументов приводит к:

TypeError: function takes exactly 1 argument (0 given)

1 Ответ

0 голосов
/ 12 апреля 2019

Я думал о проблеме неправильно. Это не определение, а скорее разбор, который поднял мою TypeError.

Чтобы предотвратить это, я просто должен был использовать "|O" вместо "O" в PyArg_ParseTuple!

...