Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何重载除法并与Python2.x中的未来除法兼容_Python_Operator Overloading_Division - Fatal编程技术网

如何重载除法并与Python2.x中的未来除法兼容

如何重载除法并与Python2.x中的未来除法兼容,python,operator-overloading,division,Python,Operator Overloading,Division,如何在同一个Python2.x脚本中同时使用来自未来导入分区的和重载分区 在Python中,我通常可以通过引入\uu div\uu和/或\uu rdiv\uu方法来覆盖除法运算符,例如 class A: def __rdiv__(self, other): return 2.1 a = A() print 3/a 如果我在一个新的Python 2.7.6解释器中运行上述内容,它将显示预期结果2.1 另一方面,如果我从uuu future uuuu import di

如何在同一个Python2.x脚本中同时使用来自未来导入分区的
和重载分区

在Python中,我通常可以通过引入
\uu div\uu
和/或
\uu rdiv\uu
方法来覆盖除法运算符,例如

class A:
    def __rdiv__(self, other):
        return 2.1

a = A()

print 3/a
如果我在一个新的Python 2.7.6解释器中运行上述内容,它将显示预期结果
2.1

另一方面,如果我从uuu future uuuu import division
中的一个
开始,那么该代码将以以下内容失败:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for /: 'int' and 'instance'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:/:“int”和“instance”的操作数类型不受支持

除了
\uuuu div\uuuu
/
\uu rdiv\uuuu
方法之外,给出
A
A和/或
\uuu ruediv\uuuu
方法,当导入部门的
生效时调用该方法

(还要注意,在Python2中,您确实应该让所有类都从
对象
继承)