Python实验报告——第7章 面向对象程序设计
实验报告
实例01:通过类属性统计类的实例个数
代码如下:
class Geese: #创造大雁类 '大雁类' def __init__(self, beak, wing, claw): #构造方法 print("我是大雁类!我有以下特征:") print(beak) print(wing) print(claw) def fly(self, state): print(state) '''***********调用函数***********''' beak_1 = '喙的基部较高,长度和头部的长度几乎相等' wing_1 = "翅膀长而尖" claw_1 = "爪子是蹼状的" wildGoose = Geese(beak_1, wing_1, claw_1) wildGoose.fly("我飞行的时候,一会排成个人字,一会儿排成个一字")
运行结果:
实例02:根据身高、体重计算BMI指数(共享版)
代码如下:
class Geese: '''雁类''' neck = '脖子较长' wing = '振翅频率高' leg = '腿位于身体的中心支点,行走自如' number = 0 def __init__(self): Geese.number += 1 print('\n我是第'+str(Geese.number)+'只大雁,我属于雁类!我有以下特征:') print(Geese.neck) print(Geese.wing) print(Geese.leg) #创建4个雁类的对象(相当于有4只大雁) list1 = [] for i in range(4): list1.append(Geese()) print('一共有'+str(Geese.number)+'只大雁')
运行结果:
实例03:在模拟电影点播功能时应用属性
代码如下:
class TVshow: list_film = ['战狼2','红海行动','西游记女儿国','熊出没','变形计'] def __init__(self,show): self.__show = show @property def show(self): return self.__show @show.setter def show(self,value): if value in TVshow.list_film: self.__show = '您选择了《' + value + '》,稍后将播出' else: self.__show = '您点播的电影不存在' tvshow = TVshow('战狼2') print('正在播出:《',tvshow.show,'》') print('您可以从',tvshow.list_film,'中选择要点播的电影') tvshow.show = "红海行动" print(tvshow.show)
运行结果:
实例04:创建水果基类及其派生类
代码如下:
class Fruit: color = '绿色' def harvest(self,color): print('水果是:' + color + '的!') print('水果已经收获……') print('水果原来是:' + Fruit.color + '的!') class Apple(Fruit): color = '红色' def __init__(self): print('我是苹果') class Orange(Fruit): color = '橙色' def __init__(self): print('\n我是橙子') apple = Apple() apple.harvest(apple.color) orange = Orange() orange.harvest(orange.color)
运行结果:
实例05:在派生类中调用基类的__init__()方法定义类属性
代码如下:
class Fruit: def __init__(self,color="绿色"): Fruit.color=color def harvest(self,color): print("水果是:"+self.color + "的!") print("水果已经收获……") print("水果原来是:"+Fruit.color+"的!") class Apple(Fruit): color = "红色" def __init__(self): print("我是苹果") super().__init__() class Sapodilla(Fruit): def __init__(self,color): print("\n我是人参果") super().__init__(color) #重写harvest()方法的代码 def harvest(self,color): print("人参果是:"+color+"的!") print("人参果已经收获……") print("人参果原来是:"+Fruit.color+"的!") apple = Apple() apple.harvest(apple.color) sapodilla = Sapodilla("白色") sapodilla.harvest("金黄色带紫色条纹")
运行结果:
实战一:修改手机默认语言
代码如下:
class Phone: def __init__(self, language = "英文"): if language == "英文": print("智能手机的默认语言为英文") else: print("将智能手机的默认语言设置为" + language) phone1 = Phone() phone2 = Phone("中文")
运行结果:
实战二:给信用卡设置默认密码
代码如下:
class Card: def __init__(self, id, pwd = "123456"): if pwd == "123456": print("信用卡" + str(id) + "的默认密码为" + str(pwd)) else: print("重置信用卡" + str(id) + "的密码为" + str(pwd)) card1 = Card("40137335633800642") card2 = Card("40137335633800642", "168779")
运行结果:
实战三:打印每月销售明细
代码如下:
class Sale: def __init__(self): self.details = {'2': ['商品编号:T0001 商品名称:笔记本电脑', '商品编号:T0002 商品名称:华为荣耀6X', '商品编号:T0003 商品名称:iPad', '商品编号:T0004 商品名称:华为荣耀V9', '商品编号:T0005 商品名称:MacBook']} def showInfo(self, month): #查询商品明细 if month in self.details: print(str(month) + "月份的商品销售明细如下:") for item in self.details[month]: print(item) else: print("该月份没有销售数据或输入月份有误!") print("————————————————销售明细——————————————————") sale = Sale() while(True): month = input("请输入要查询的月份(比如1、2、3等,输入0退出):") if month == '0': break sale.showInfo(month)
运行结果:
实战四:模拟电影院的自动售票机选票页面
代码如下:
print('选择座位:' + seat) def showInfo(self): print("电影:" + Movie.movie_name) print("播出时间:" + Movie.sessions) print("座位:" + Movie.seat) print('\n出票完成,请别忘记取票') movie1 = Movie() print('\n请选择正在上映的电影:1、《环太平洋:雷霆再起》 2、《头号玩家》3、《红海行动》') movie1.choiceMovie(input()) print('\n请选择电影播放场次:1、9:30 2、10:40 3、12:00') movie1.choiceSessions(input()) print('\n请选择座位剩余座位:10-01, 10-02, 10-03, 10-04') movie1.seats(input()) print('\n正在出票。。。\n') # 电影票信息 movie1.showInfo()
运行结果: