1.1. 定义一个基类Pm,有求平面图形周长、面积的2个方法。(10分)
1.2. 定义一个Pm的子类Cfx,有构造方法,私有属性为长、宽,有分别设置长、宽的set方法,有返回长、宽的get方法。重写父类的求周长、面积的方法。(10分)
1.3. 定义一个Pm的子类Yuan,有构造方法,私有属性为半径,有设置半径的set方法,有返回半径的get方法。重写父类的求周长、面积的方法。(10分)
1.4. 定义一普通函数,利用多态实现2个子类求周长、面积的方法。(10分)
1.5. 用户输入长方形的长、宽。输入圆的半径。把输入的数据实例化长方形、圆的类,然后显示它们的周长、面积。(10分)
import math
class Pm:
def perimeter(self):
pass
def area(self):
pass
class Cfx(Pm):
def __init__(self,l,w):
self.set(l,w)
def set(self,l,w):
self.__long = l
self.__wide = w
def get(self):
return self.__long,self.__wide
def perimeter(self):
return (self.__long + self.__wide)*2
def area(self):
return self.__long * self.__wide
class Yuan(Pm):
def __init__(self,r):
self.set(r)
def set(self,r):
self.__radius = r
def get(self):
return self.__radius
def perimeter(self):
return 2*math.pi * self.__radius
def area(self):
return math.pi * self.__radius**2
def getClass(a,b=None):
if b==None:
return Yuan(a)
else:
return Cfx(a,b)
l = int(input('输入长方形的长:'))
w = int(input('输入长方形的宽:'))
p = getClass(l,w)
print("长方形的周长:",p.perimeter())
print("长方形的面积:",p.area())
r = int(input('输入圆的半径:'))
p = getClass(r)
print("圆的周长:",p.perimeter())
print("圆的面积:",p.area())