今天学习了类的继承,通过火车票和高铁票信息查询程序,了解类的继承;
类的继承好处在于子类可以继承父类的所有属性,无需再额外定义;
主要实现代码如下:
from prettytable import PrettyTable
class Ticket():
def __init__(self,cf_station,dd_station,cf_time,dd_time,checi,none_set):
self.cf_station = cf_station
self.dd_station = dd_station
self.cf_time = cf_time
self.dd_time = dd_time
self.checi = checi
self.none_set = none_set
class Gd(Ticket):
def __init__(self,cf_station,dd_station,cf_time,dd_time,checi,yideng,erdeng,none_set):
Ticket.__init__(self,cf_station,dd_station,cf_time,dd_time,checi,none_set)
self.yideng = yideng
self.erdeng = erdeng
def display(self):
ptable = PrettyTable("出发站 到达站 出发时间 到达时间 车次 一等座 二等座 无座".split())
ptable.add_row([self.cf_station,self.dd_station,self.cf_time,self.dd_time,self.checi,self.yideng,self.erdeng,self.none_set])
print(ptable)
class TKz(Ticket):
def __init__(self,cf_station,dd_station,cf_time,dd_time,checi,ruanwo,yingwo,yingzuo,none_set):
Ticket.__init__(self,cf_station,dd_station,cf_time,dd_time,checi,none_set)
self.ruanwo = ruanwo
self.yingwo = yingwo
self.yingzuo = yingzuo
def display(self):
ptable = PrettyTable("出发站 到达站 出发时间 到达时间 车次 软卧 硬卧 硬座 无座".split())
ptable.add_row([self.cf_station,self.dd_station,self.cf_time,self.dd_time,self.checi,self.ruanwo,self.yingwo,self.yingzuo,self.none_set])
print(ptable)
#创建类的实例
g1 = Gd("西安", "北京", "10:00", "15:00", "G33", 1, 2, 3 )
g2 = Gd("西安", "沈阳", "17:00", "23:59", "G1", 0, 9, 1)
T1 = TKz("北京","上海"," 2:00"," 4:00"," T11", 1, 2, 4, 10)
T2 = TKz("北京","长春"," 12:00"," 14:00"," T22", 11, 12, 14, 10)
for i in [g1,g2,T1,T2]:
i.display()
效果图如下:
父类:出发站 到达站 出发时间 到达时间 车次 无座
Gd子类:父类 + 一等座 二等座
TKz子类:父类 + 软卧 硬卧 硬座
好啦~~