定义一个名为Square的类正方形类 使得可以用Square边长实例化该类,并重新父类width和height的写法实现width和height同时修改pytho
时间: 2024-12-15 22:28:27 浏览: 8
在Python中,如果你想要定义一个名为`Square`的子类,它是`Rectangle`类的一个特殊情况(即正方形),并且能同时修改`width`和`height`,你可以这样做:
```python
from abc import ABC, abstractmethod
# 定义一个抽象的Rectangle基类,包含area方法
class Rectangle(ABC):
@abstractmethod
def area(self):
pass
class Square(Rectangle):
def __init__(self, side_length):
"""
初始化正方形类,将side_length赋值给width和height
"""
self.side_length = side_length
super().__init__()
# 实现area方法,由于正方形的面积等于边长的平方,所以我们直接用side_length计算
def area(self):
return self.side_length ** 2
# 为了支持同时修改边长,我们覆盖set_side_length方法
def set_side_length(self, new_length):
if new_length > 0:
self.side_length = new_length
else:
raise ValueError("Side length must be a positive number.")
# 使用正方形类
square = Square(5)
print(f"Original area: {square.area()}")
# 修改边长并打印新的面积
square.set_side_length(7)
new_area = square.area()
print(f"New area after changing side length: {new_area}")
```
在这个版本中,`Square`类从`Rectangle`派生,覆盖了`__init__`方法并实现了`area`方法,同时增加了一个自定义方法`set_side_length`来修改边长。
阅读全文