2015-11-29 4 views
0

У меня есть класс, который имеет функцию мул и DIV реализован следующим образом:оператор Python перегрузка __div__

def __mul__(self, other): 
    return Foo(self.a * other) 

def __div__(self, other): 
    return Foo(self.a/other) 

Умножение (например, * Ь, где а является экземпляром класса Foo и b - целое число) отлично работает, но деление (a/b) дает ошибку, говоря, что оператор не поддерживается. Как мне обойти это?

TypeError: unsupported operand type(s) for /: 'Foo' and 'int' 
+1

Вы используете Python 3? – xnx

+0

Вы пытались перегрузить '__truediv__' ('/') и' __floordiv__' ('//') вместо этого? – Felk

ответ

3

Вы используете from __future__ import division. Поэтому вам необходимо реализовать __truediv__ для / и __floordiv__ для //.

Смежные вопросы