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管理系统======== 1.查询所有DVD 2.增加DVD 3.借出DVD 4.归还DVD 5.退出")

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管理系统======== 1.查询所有DVD 2.增加DVD 3.借出DVD 4.归还DVD 5.退出")




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()
原文地址:https://www.cnblogs.com/qianshuixianyu/p/9118515.html