如何在python3中使用或实现__div__(python2)而不是__truediv__

时间:2019-07-11 05:50:39

标签: python python-3.x operator-overloading operators python-2.x

在python2中,您可以选择使用__div__还是__truediv__运算符see here

在python3中,__ div__运算符似乎不存在,因为它已被__truediv__完全替换。如何在需要由python3解释的脚本中使用原始的__div__方法?

解决方案是覆盖__truediv__还是仅仅是operator.div()之类的函数,甚至是在python3解释脚本中的一部分代码上运行python2的包装器,都没有关系(甚至存在吗?)。我有一个脚本,需要与python3一起运行,并且必须使一行代码包含/运算符,就像在python2中一样。

1 个答案:

答案 0 :(得分:1)

使用__floordiv__

示例:

class MyClass:
    def __init__(self, n):
        self.n = n
    def __floordiv__(self, other):
        return 'floor division, hello world, %s' % self.n // other