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)

原文地址:https://www.cnblogs.com/zhen1996/p/8964293.html