gpt4 book ai didi

python - 如何在名为 Fraction 的类中使用 __mul__

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

如何使用我的类 Fraction 进行乘法运算?

class Fraction(object):

def __init__(self, num, den):
self.num = num
self.den = den

def resolve(self):
#a = 2
#b = 6
#c = 2
#d = 5
self.num = self.num / other.num
self.den = self.den / other.den
return self

def __str__(self):
return "%d/%d" %(self.num, self.den)

def __mul__(self, other):
den = self.den * other.num
num = self.num * other.den
return (Fraction(self.num * other.num, self.den * other.den))

print('Multiplication:', Fraction.__mul__(2, 6))

这是输出:

Traceback (most recent call last):
File "app.py", line 43, in <module>
print('Multiplication:', Fraction.__mul__(2, 6))
File "app.py", line 27, in __mul__
den = self.den * other.num
AttributeError: 'int' object has no attribute 'den'

最佳答案

试试这个

f1 = Fraction(1, 2)
f2 = Fraction(2, 3)

print(f1 * f2)

我来了

  • 正在创建 Fraction 类的对象 f1 这是 1/2
  • 同样 f22/3
  • 现在 f1 * f2 自动调用 f1 的 dunder 方法 __mul__f2 作为 其他参数
  • 所以你应该看到打印出预期的 Fraction 对象

PS:您收到 AttributeError 的原因是,__mul__ 期望传递 Fraction 对象 - 而您正在传递int

关于python - 如何在名为 Fraction 的类中使用 __mul__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56295779/

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