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)
