gpt4 book ai didi

python - 运算符重载python

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:12 25 4
gpt4 key购买 nike

> class divnum:
> def __init__(self,num):
> self.nums=num
> def __div__(self,other):
> return self.nums/other.nums
> a=divnum(5)
> b=divnum(1)
> answer= (a/b)

此错误“builtins.TypeError:/不支持的操作数类型:‘divnum’和‘divnum’”。我错了什么?

最佳答案

假设这是 Python 3.x

要为类实现除法运算符,有两种方法:__floordiv____truediv__。分别为整数和 float 除法。

如果您只实现其中一个,您将得到在尝试执行另一个时遇到的 TypeError。

在 python 3.x 中默认是浮点除法,除非你使用 //。所以你应该在你的类中实现 __truediv__ 除非你只希望整数除法成为可能。

我自己没有 python 3.x,所以我无法测试它。但我认为这应该是正确的。

class divnum:
def __init__(self,num):
self.nums=num
def __truediv__(self,other):
return self.nums/other.nums

def __floordiv__(self, other):
return self.nums//other.nums

关于python - 运算符重载python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com