python继承关系及DVD案例
Posted 潜水闲鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python继承关系及DVD案例相关的知识,希望对你有一定的参考价值。
1.模块.getrefcount--查看引用个数,如果没有引用,则抛异常;
2.继承:简化代码。生成子类时,先初始化父类
继承属性--①self.属性=当前属性
②父类.属性=当前属性
③父类._init_()方法
④super(子类,self)._init_()方法
3.构造方法(必须有返回值)优先于初始化方法
类名.mso用于调用父类的位置
def _new_(cls,*,**):
print()
return object._new_(cls)
4.类方法:@classmethod需要参数 例如构造方法
静态方法:@staticmethod没有参数 和类.对象没有关系
5.单例模式:只创建一个对象
构造方法内部可以进行判断
#单例模式
class Sing:
__instance=None
def __new__(cls):
if cls.__instance==None:
cls.__instance=object.__new__(cls)
return cls.__instance
else:
return cls.__instance
s=Sing()
ss=Sing()
print(id(s),id(ss))
6.对象列表排序:
重写_lt_() _str_() 等方法;列表输出需要循环
def _lt_(self,other):
return self.brand.encode("gbk")<other.brand.encode("gbk")
der _str_(self):
return self.brand+str(self.price)
7.异常处理和写
try:
语句
except 异常类型 as 别名:
语句
else:
无异常则执行
finally:
语句
8.运用else,一般和break一起使用
flag=False
for i in range(1,11):
if i%3==0:
flag=True
print(i)
break
else:
print("没有被整除的")
9.pass什么都不写的时候用
迭代器 装饰模式 xml解析 文件
DVD管理系统案例:(分为简单模拟和优化)
1.简单模拟(含错误)
class Dvd:
def __init__(self,num=None):
self.num=num
list=[]
print("========DVD管理系统========\n1.查询所有DVD\n2.增加DVD\n3.借出DVD\n4.归还DVD\n5.退出")
class Handler(Dvd):
def __init__(self):
Dvd.__init__(self)
num = int(input("请输入您要选择的数字"))
list=[]
if num is 1:
print(list)
Handler()
if num is 2:
value=input("请输入DVD的名称")
list.append(value)
print(list)
nu=int(input("是否继续增加0/1"))
if nu is 0:
value = input("请输入DVD的名称")
list.append(value)
print(list)
Handler()
if num is 3:
value=input("请输入您要借出的DVD")
list.remove(value)
print(list)
Handler()
if num is 4:
value=input("请输入要归还的DVD名称")
list.append(value)
print(list)
Handler()
else:
print("已经退出系统!")
nu=str(input("是否再次进入系统0/1"))
if nu is 0:
Handler()
else:
pass
s=Handler()
2.优化后案例(还可以继续优化,目前要求不清晰,能力有限):
class Dvd:
def __init__(self,num=None):
self.num=num
list=[]
print("========DVD管理系统========\n1.查询所有DVD\n2.增加DVD\n3.借出DVD\n4.归还DVD\n5.退出")
class Handler(Dvd):
def __init__(self):
Dvd.__init__(self)
num = int(input("请输入您要选择的数字"))
list=[]
if num is 1:
print(list)
Handler()
if num is 2:
value=input("请输入DVD的名称")
list.append(value)
print(list)
nu=int(input("是否继续增加0/1"))
if nu is 0:
value = input("请输入DVD的名称")
list.append(value)
print(list)
Handler()
if num is 3:
value=input("请输入您要借出的DVD")
list.remove(value)
print(list)
Handler()
if num is 4:
value=input("请输入要归还的DVD名称")
list.append(value)
print(list)
Handler()
else:
print("已经退出系统!")
nu=str(input("是否再次进入系统0/1"))
if nu is 0:
Handler()
else:
pass
s=Handler()
以上是关于python继承关系及DVD案例的主要内容,如果未能解决你的问题,请参考以下文章