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