python中类与对象的应用_Python中类和对象的实际应用

1.DVD管理系统

class dvd:

def __init__(self,name,price,state):

self.name=name;

self.price=price

self.state=state

def __str__(self):

stat='已借出';

if self.state==1:

stat='未借出'

return '名称:《%s》 单价:%d 状态:%s'%(self.name,self.price,stat)

class DVDManager:

#存储 多个dvds 每一个元素 都是一个DVD

dvds=[]

def init(self):

self.dvds.append(dvd('光辉岁月',10,0));

self.dvds.append(dvd('绅士', 5, 1));

self.dvds.append(dvd('海阔天空', 11, 1));

def Menu(self):

self.init()

while(True):

print('1.查询所有DVD')

print('2.增加DVD')

print('3.借出DVD')

print('4.归还DVD')

print('5.退出')

choose=int(input('请选择:'));

if choose==1:

self.showAllDVD();

elif choose==2:

self.insertDVD();

elif choose==3:

self.jiechuDVD();

elif choose==4:

self.rollBackDVD();

elif choose==5:

print('5.谢谢使用')

break;

def showAllDVD(self):

for d in self.dvds:

print(str(d))

def jiechuDVD(self):

name = input('请输入DVD的名称:')

ret = self.checkDVD(name);

if ret != None:

if ret.state==0:

print('dvd 已经借出去了')

#return;

else:

days=int(input('请输入借出天数:'))

ret.state = 0;

print('借出 %d 天,应还利息%d '%(days,ret.price*days))

else:

print('DVD 不存在!')

def rollBackDVD(self):

name = input('请输入归还DVD的名称:')

ret = self.checkDVD(name);

if ret == None:

print('DVD 不存在!')

else:

if ret.state == 1:

print('dvd 未借出!')

else:

days= int(input('请输入借出去了多少天?'))

y_money=ret.price * days

print('借出 %d 天,应还利息%d ' % (days, y_money))

money=0;

while True:

money= int(input('请输入金额:'))

#带学生完成..

if money

print('不够!')

else:

break;

if money>=y_money:

print('找零:%d'%(money-y_money));

ret.state=1;

print('归还成功!')

def insertDVD(self):

name = input('请输入DVD的名称:')

ret= self.checkDVD(name);

if ret != None:

print('DVD 已经存在!')

else:

price=int(input('请输入价格:'))

new_dvd=dvd(name,price,1);

self.dvds.append(new_dvd)

print('存放成功!')

def checkDVD(self,name):

for d in self.dvds:

if d.name==name:

return d;#返回当前对象-->内存地址

else:

return None;

manager= DVDManager();

manager.Menu();

2.给宠物看病

class pet:

def kanbing(self):

print('给宠物看病。。')

class Car(pet):

def kanbing(self):

print('给猫咪看病 吃药,吃小黄鱼..')

class Dog(pet):

def kanbing(self):

print('给狗狗看病 输液 吃骨头....')

class bird(pet):

def kanbing(self):

print('看小鸟看病 拔罐 吃虫子... ')

class pig(pet):

def kanbing(self):

print('给小猪看病 针灸 吃猪粮... ')

class ShouVet:

def JiuZhen(self,pet):

print('兽医出诊..给宠物看病...')

pet.kanbing();

class person:

def kanbing(self):

print('给人类看病 望闻问切 多喝水..')

dingdang=Car();

kala=Dog();

huangli=bird();

peiqi=pig()

bianque=person()

#----

# syi=ShouVet();

# syi.JiuZhen(dingdang);

# syi.JiuZhen(kala);

# syi.JiuZhen(huangli);

# syi.JiuZhen(peiqi);

# syi.JiuZhen(bianque)

3.计算机

class Operation:

def __new__(cls):

pass

def GetResult(self,numA, numB):

print('计算2操作数的运算结果')

class OpeartionAdd(Operation):

def __new__(cls):

return object.__new__(cls);

#return Operation.__new__(cls)

def GetResult(self,numA,numB):

return numA+numB

class OperationSub(Operation):

def GetResult(self,numA,numB):

return numA-numB

class OperationMul(Operation):

def GetResult(self,numA,numB):

return numA*numB

class OperationDiv(Operation):

def GetResult(self,numA,numB):

return numA//numB

class OperationFactory(object):

#不同的参数创建不同的对象的 函数

def create_class(self,fu):

if fu == '+':

q = OpeartionAdd();

elif fu == '-':

q = OperationSub();

elif fu == '*':

q = OperationMul();

elif fu == '/':

q = OperationDiv();

return q;

if __name__== '__main__':

#工厂对象

factory=OperationFactory();

numA=int(input('请输入第一个操作数'))

numB=int(input('请输入第二个操作数'))

fu = input('请输入运算符:')

# q代表 由 工厂创建出来的一个计算器

q=factory.create_class(fu)

print('计算结果:',q.GetResult(numA, numB))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值