Я пытаюсь определить некоторые встроенные арифметические операции для cdef class
в файле Cython.
Сначала я попытался сделать функцию __pow__
так:
def __pow__(self, other, modulo=None):
pass
Но при компиляции получено следующее сообщение об ошибке:
Этот аргумент не может иметь значение по умолчанию
(аргумент, на который ссылается сообщение об ошибке: modulo
)
Удаление значения по умолчанию для modulo
позволяет файлу правильно скомпилироваться, но вынуждает пользователя предоставить третий аргумент, который не только странный и раздражающий, но и предотвращает использование оператора **
(pow
должен быть использован вместо).
Как я могу реализовать __pow__
в Cython, чтобы третий аргумент был необязательным?