【发布时间】:2021-03-24 15:44:50
【问题描述】:
我正在执行一项任务,其中我有一个分数类,其中包含有关如何对分数进行加、减、乘和除的函数。我在创建将添加 2 个分数的 add 函数时遇到问题,并且此函数必须 使用静态方法。这是我目前写的代码:
class Fraction:
def __init__(self,num1=0,num2=0):
self.num1=num1
self.num2=num2
def __str__(self):
while self.num1>self.num2:
a = self.num1//self.num2
b = self.num1 % self.num2
if self.num2==1:
return "%s"%(self.num1)
elif self.num1 % self.num2==0:
return "%s"%(self.num1/self.num2)
else:
return "%s+%s|%s"%(a,b,self.num2)
if self.num1==0:
return "0"
elif self.num1 or self.num2 < 0 and self.num1==self.num2:
return "-1"
elif self.num2==1:
return "%s"%(self.num1)
elif self.num1==self.num2:
return "1"
else:
return "%s|%s"%(self.num1,self.num2)
@staticmethod
def add(a,b):
a=Fraction(n,d)
b=Fraction(num,den)
if a.d == b.den and a.n<a.d or b.num<b.den:
return "%s|%s"%(a.n+b.num,a.d)
elif a.d != b.den:
return "%s|%s"%((a.n*b.den)+(a.d*b.num),(a.d*b.den))
我在添加功能中遇到麻烦,我不知道如何使该功能工作。 例如:
Fraction.add(Fraction(1,4),Fraction(2,4))
>>> 3|4
Fraction.add(Fraction(1,5),Fraction(6,7))
>>> 1 + 2|35
这就是输出的样子。谁能指导我完成添加功能以及如何使用静态方法改进它
【问题讨论】:
-
在
Fraction.add、a和b中已经是Fraction对象。为什么要用新值覆盖它们?
标签: python python-3.x list python-requests