(Cython) Сделайте аргумент modulo необязательным в __pow__Python

Программы на Python
Ответить
Anonymous
 (Cython) Сделайте аргумент modulo необязательным в __pow__

Сообщение Anonymous »

Я пытаюсь определить некоторые встроенные арифметические операции для класса cdef в файле Cython.

Сначала я попробовал сделать функцию __pow__ вот так:

Код: Выделить всё

def __pow__(self, other, modulo=None):
pass
Но при компиляции получено следующее сообщение об ошибке:


Этот аргумент не может иметь значение по умолчанию


(Аргумент, на который ссылается сообщение об ошибке, вычисляется по модулю)
Удаление значения по умолчанию для modulo позволяет правильно скомпилировать файл, но вынуждает пользователя предоставить третий аргумент, что не только странно и раздражает, но и препятствует использованию оператора ** (

Код: Выделить всё

powВместо этого следует использовать 
).

Как реализовать __pow__ в Cython так, чтобы третий аргумент был необязательным?

Подробнее здесь: https://stackoverflow.com/questions/568 ... nal-in-pow
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»