1.创建一个shape3抽象类,内有2个抽象方法方法名分别是area-面积、zc-周长、 2.创建一个派生类circle继承shape3,实现所有面积和周长抽象方法---圆。【PI=3.14必须定义为类常量,其他所有属性为私有。】 创建一个派生类rect继承shape3,实现所有面积和周长抽象方法---矩形。 注意:其他属性和功能根据公式自主定义,每个派生类必须运用构造函数。 3.创建p1对象(半径=6),调用圆的周长和面积 求出半径5的面积周长后,在类外对半径值更新为8,并求出半径更新后的面积。 创建p2对象(长=7,宽:4),调用矩形的周长和面积
时间: 2024-02-20 19:02:07 浏览: 21
```python
import abc
class Shape3(abc.ABC):
PI = 3.14
@abc.abstractmethod
def area(self):
pass
@abc.abstractmethod
def zc(self):
pass
class Circle(Shape3):
def __init__(self, radius):
self.__radius = radius
def area(self):
return self.PI * self.__radius ** 2
def zc(self):
return 2 * self.PI * self.__radius
class Rect(Shape3):
def __init__(self, length, width):
self.__length = length
self.__width = width
def area(self):
return self.__length * self.__width
def zc(self):
return 2 * (self.__length + self.__width)
# 创建p1对象
p1 = Circle(6)
print("p1对象的周长为:", p1.zc())
print("p1对象的面积为:", p1.area())
# 对p1对象的半径进行更新
p1._Circle__radius = 8
print("更新后,p1对象的面积为:", p1.area())
# 创建p2对象
p2 = Rect(7, 4)
print("p2对象的周长为:", p2.zc())
print("p2对象的面积为:", p2.area())
```