day_4_27 py
1 ''' 2 2018-4-27 19:57:29 3 其实这些都是讲的类和对象的 4 5 self(在定义方法的时候默认的参数)就相当于java里面的this关键字, this.name=name 6 7 class 类名: #类命名需要用大驼峰 8 属性 9 方法 (函数定义在类的里面叫方法,定义方法需要self ) 10 def xxx(self): 11 pass 12 ''' 13 14 # demo 15 # class Cat: 16 # # 初始化对象 (完成初始化功能) 17 # def __init__(self,new_name,new_age): 18 # self.name = new_name 19 # self.age = new_age 20 # print("================") 21 # # 用于获取对象的信息 22 # def __str__(self): 23 # return "$s的年龄是:%d"%(self.name,self.age) 24 # # 方法 25 # def eat(self): 26 # print("猫在吃鱼.....") 27 # def drink(self): 28 # print("猫正在喝可乐;//") 29 # def introduce(self): 30 # print("%s的年龄是:%d"%(self.name,self.age)) 31 # 32 # # 创建一个对象 33 # tom = Cat("汤姆",40) 34 # lanmao = Cat("蓝猫",10) 35 # # 调用tom指向的对象中的 方法 36 # print(tom) 37 # print(lanmao) 38 39 #定义一个Home类 把一个对象添加到另外一个对象的属性里面去 40 class Home: 41 42 def __init__(self, area): 43 self.area = area #房间剩余的可用面积 44 #self.light = 'on' #灯默认是亮的 45 self.containsItem = [] 46 47 def __str__(self): 48 msg = "当前房间可用面积为:" + str(self.area) 49 if len(self.containsItem) > 0: 50 msg = msg + " 容纳的物品有: " 51 for temp in self.containsItem: 52 msg = msg + temp.getName() + ", " 53 msg = msg.strip(", ") 54 return msg 55 56 #容纳物品 57 def accommodateItem(self,item): 58 #如果可用面积大于物品的占用面积 59 needArea = item.getUsedArea() 60 if self.area > needArea: 61 self.containsItem.append(item) 62 self.area -= needArea 63 print("ok:已经存放到房间中") 64 else: 65 print("err:房间可用面积为:%d,但是当前要存放的物品需要的面积为%d"%(self.area, needArea)) 66 67 68 # 定义bed类 69 class Bed: 70 71 def __init__(self,area,name = '床'): 72 self.name = name 73 self.area = area 74 75 def __str__(self): 76 msg = '床的面积为:' + str(self.area) 77 return msg 78 79 #获取床的占用面积 80 def getUsedArea(self): 81 return self.area 82 83 def getName(self): 84 return self.name 85 86 87 #创建一个新家对象 88 newHome = Home(100)#100平米 89 print(newHome) 90 91 #创建一个床对象 92 newBed = Bed(20) 93 print(newBed) 94 95 #把床安放到家里 96 newHome.accommodateItem(newBed) 97 print(newHome) 98 99 #创建一个床对象 100 newBed2 = Bed(30,'席梦思') 101 print(newBed2) 102 103 #把床安放到家里 104 newHome.accommodateItem(newBed2) 105 print(newHome) 106 107 108 109 print("|=========================") 110 111 # 烤地瓜 112 class SweetPotato : 113 def __init__(self): 114 self.cookedString ="生的" 115 self.cookedLevel = 0 116 self.codiments = [] #创建列表可以存储东西 117 118 def __str__(self): 119 return "地瓜 状态:%s(%d,添加的佐料有:%s)"%(self.cookedString,self.cookedLevel,str(self.codiments)) 120 def cook(self,cooked_time): 121 self.cookedLevel += cooked_time 122 if self.cookedLevel >=0 and self.cookedLevel<3: 123 self.cookedString ="生的" 124 elif self.cookedLevel >=3 and self.cookedLevel<5: 125 self.cookedString ="半生不熟的" 126 elif self.cookedLevel >=5 and self.cookedLevel<8: 127 self.cookedString ="熟了" 128 elif self.cookedLevel>8: 129 self.cookedString = "烤糊了" 130 131 def ddCondiments(self,item): 132 # 添加佐料 133 self.codiments.append(item) 134 #创建了一个地瓜对象 135 di_gua = SweetPotato() 136 print(di_gua) 137 # 开始烤地瓜 找到当前对象属性,使其改变属性 138 di_gua.cook(1) 139 print(di_gua) 140 di_gua.cook(1) 141 print(di_gua) 142 di_gua.cook(1) 143 print(di_gua) 144 di_gua.ddCondiments("大蒜") 145 di_gua.cook(1) 146 print(di_gua) 147 di_gua.cook(1) 148 print(di_gua)