zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    C语言 · 选择排序
    C语言 · 生物芯片
    C语言 · 猜灯谜
    C语言 · x的x次幂结果为10
    C语言 · LOG大侠
    C语言 · 成绩查询系统
    C语言 · C++中map的用法详解
    C语言 · 方程的解
    斯坦福大学公开课:监督学习应用,梯度下降
    斯坦福大学公开课:机器学习的动机与应用
  • 原文地址:https://www.cnblogs.com/qianshuixianyu/p/9118515.html
Copyright © 2011-2022 走看看