1.学习笔记
1. 继承: 子类继承父类,子类可是使用父类的属性和方法,简化代码(封装,继承,多态是面向对象语言的三大特征)
a) 当生成子类对象时,先初始化父类对象,所以如果父类有__init__()方法,并且有属性时,要通过子类的构造赋值
b) 一个父类可以有多个子类
c) 在子类中,调用父类的属性时,在__init__()方法中使用父类.属性,或者self.属性
d) 调用父类方法时:super().父类方法()
e) 当子类继承父类时,子类的构造方法应该包含父类和子类共同属性,在子类的出世方法中,将父类的属性传递给父类,子类的属性赋值给子类
f) 方法重写:子类继承父类时,子类的方法签名和父类的一样,此时子类重写了父类的方法,当生成子类对象时,调用的是子类重写的方法
三代继承:子类的初始化方法需要祖父、父类及自己的属性,可以调用父类的初始化方法传参,可以重写父类的方法,构造的顺序依然是先构造祖父类、再构造父类,最后构造自己
2.课后练习
DVD管理系统练习
dvs = [{'state':'可借 ','name':'罗马假日','date':'','time':10},
{'state':'可借 ','name':'浪漫满屋','date':'','time':15},
{'state':'可借 ','name':'风声鹤唳','date':'','time':2}]
def add(): #新增DVD的方法
if len(dvs)>=4: #判断货架上的DVD数量有没有超过4
print('货架已满,无法新增DVD!')
else:
new = input('请输入DVD名称:')
for i in dvs:
if i['name']== new: #判断货架上的与增加的是否一样
print('货架上已有该DVD')
break
else:
dvs.append({'state':'可借 ','name':new,'date':'','time':0})
print('添加成功!')
def check(): #查看DVD的方法
print('序号\t状态 \t名称 \t借出日期\t借出次数\t')
for i in dvs:
print('{0}\t{1}\t《{2}》\t{3}\t{4}\t'.format((dvs.index(i)+1),i['state']
,i['name'],i['date'],i['time']))
def remove(): #删除DVD的方法
if len(dvs)==0: #判断货架上有没有DVD
print('货架上已经没有任何DVD!')
else:
new = input('请输入DVD名称:')
for i in dvs:
if i['name']== new: #判断货架上有没有需要删除的DVD
if i['state']=='可借 ': #判断DVD是否已经借出
del dvs[dvs.index(i)]
print('删除成功!')
break
else:
print('无法删除,你要删除的DVD已经借出!')
else:
print('货架上没有此DVD!')
def borrow(): #借出DVD的方法
if len(dvs)==0: #判断货架上有没有DVD
print('货架上已经没有任何DVD!')
else:
new = input('请输入DVD名称:')
for i in dvs:
if i['name']== new: #判断货架上有没有需要删除的DVD
if i['state']=='可借 ': #判断DVD有没有被借出
i['date'] = input('请输入借出时间:')
i['time'] += 1
i['state'] = '已借出'
break
else:
print('%s已被借出!'%(i['name']))
break
else:
print('货架上没有此DVD!')
def back(): #借出DVD的方法
new = input('请输入DVD名称:')
for i in dvs:
if i['name']== new: #判断货架上有没有归还的DVD
if i['state']=='可借 ': #判断DVD有没有被借出
print('此DVD未被借出!')
break
else:
i['state'] = '可借 '
temp = input('请输入归还日期:')
print('\n借出日期为:%s日'%i['date'])
print('归还日期为:%s日'%temp)
print('应付租金:%d'%(int(temp)-int(i['date'])))
i['date'] = ''
break
else:
print('货架上没有此DVD!')
def main():
while True:
print('欢迎使用DVD管理系统')
print('-'*30)
print('1.新增DVD')
print('2.查看DVD')
print('3.删除DVD')
print('4.借出DVD')
print('5.归还DVD')
print('6.退出DVD')
print('-'*30)
while True:
temp = input('请选择:')
if temp =='0':
break
elif temp =='1':
add()
print('*'*30)
print('输入0返回')
elif temp =='2':
check()
print('*'*30)
print('输入0返回')
elif temp =='3':
remove()
print('*'*30)
print('输入0返回')
elif temp =='4':
borrow()
print('*'*30)
print('输入0返回')
elif temp =='5':
back()
print('*'*30)
print('输入0返回')
elif temp =='6':
return 0
main()