EduCoder Python入门之类的继承
第1关:初识继承
测试说明:
本文的测试文件是animalstest.py,具体测试过程如下:
1.平台自动编译生成animalstest.exe
2.平台运行animalstest.exe,并以标准输入方式提供测试输入
3.平台获取animalstest.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
class animals:
def breath(self):
print("%s会呼吸" %self.name)
def run(self):
print("%s会奔跑" %self.name)
def foraging(self):
print("%s会觅食" %self.name)
# 请在下面填入定义fish类的代码,fish类继承自animals类
#********** Begin *********#
class fish(animals):
#********** End **********#
def __init__(self,name):
self.name = name
def swim(self):
print("%s会游泳" %self.name)
# 请在下面填入定义leopard类的代码,leopard类继承自animals类
#********** Begin *********#
class leopard(animals):
#********** End **********#
def __init__(self,name):
self.name = name
def climb(self):
print("%s会爬树" %self.name)
fName = input()
lName = input()
f = fish(fName)
f.breath()
f.swim()
f.foraging()
l = leopard(lName)
l.breath()
l.run()
l.foraging()
第2关:覆盖方法
测试说明:
本文的测试文件是Pointtest.py,具体测试过程如下:
1.平台自动编译生成Point.exe
2.平台运行Point.exe,并以标准输入方式提供测试输入
3.平台获取Point.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
class Point:
def __init__(self,x,y,z,h):
self.x = x
self.y = y
self.z = z
self.h = h
def getPoint(self):
return self.x,self.y,self.z,self.h
class Line(Point):
# 请在下面填入覆盖父类getPoint()方法的代码,并在这个方法中分别得出x - y与z - h结果的绝对值
#********** Begin *********#
def getPoint(self):
length_one=abs(self.x-self.y)
length_two=abs(self.z-self.h)
#********** End **********#
print(length_one,length_two)
第3关:从标准类派生
测试说明:
本文的测试文件是ChangeAbstest.py,具体测试过程如下:
1.平台自动编译生成ChangeAbstest.exe
2.平台运行ChangeAbstest.exe,并以标准输入方式提供测试输入
3.平台获取ChangeAbstest.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
class ChangeAbs(int):
def __new__(cls, val):
# 填入使用super()内建函数去捕获对应父类以调用它的__new__()方法来计算输入数值的绝对值的代码
# 求一个数的绝对值的函数为abs()
# 返回最后的结果
#********** Begin *********#
return super(ChangeAbs,cls).__new__(cls, abs(val))
#********** End **********#
class SortedKeyDict(dict):
def keys(self):
# 填入使用super()内建函数去捕获对应父类使输入字典自动排序的代码
# 返回最后的结果
#********** Begin *********#
return sorted(super(SortedKeyDict,self).keys())
#********** End **********#