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案例的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象微案例_钻石问题与super

Python面向对象微案例_钻石问题与super

python 异常继承关系及自定义异常的实现

Python中类的继承及类的属性和方法总结

5判断循环数组综合练习案例(迷你DVD)

[转]继承的简单总结