编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有刻画方程系数的3个成员变量以及计算实根的方法。要求:该类的所有对象共享常数项。
时间: 2023-06-17 19:06:13 浏览: 42
以下是一个简单的实现:
```python
class QuadraticEquation:
a = None
b = None
c = None
constant = None
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
# 计算常数项
self.constant = self.b ** 2 - 4 * self.a * self.c
def solve(self):
if self.constant < 0:
return None, None
elif self.constant == 0:
root = -self.b / (2 * self.a)
return root, root
else:
root1 = (-self.b + self.constant ** 0.5) / (2 * self.a)
root2 = (-self.b - self.constant ** 0.5) / (2 * self.a)
return root1, root2
```
在这个类中,我们定义了3个属性 `a`、`b`、`c` 分别表示一元二次方程的系数,以及一个常数项 `constant`,它表示方程的判别式。在构造函数中,我们计算并存储常数项。最后,我们定义了一个 `solve` 方法,该方法计算并返回方程的实根。
在这个实现中,我们使用了类变量 `constant` 来共享常数项。由于该变量是在类的定义中声明的,因此它将与该类的所有对象共享。