python 基础复习 13

  1 # class Person:
  2 #     def __init__(self,name,blood,aggr,sex):
  3 #         self.name = name
  4 #         self.blood = blood
  5 #         self.aggr = aggr
  6 #         self.sex = sex
  7 #     def attack(self,dog):
  8 #         # 人打狗,狗掉血
  9 #         jin.blood -= self.aggr
 10 #         if jin.blood <= 0:
 11 #             print("%s打了%s,%s被打死了"%(self.name,dog.name,dog.name))
 12 #
 13 # class Dog:
 14 #     def __init__(self,name,blood,aggr,kind):
 15 #         self.name = name
 16 #         self.blood = blood
 17 #         self.aggr = aggr
 18 #         self.kind = kind
 19 #     def bite(self,person):
 20 #         # 狗咬人,人掉血
 21 #         person.blood -= self.aggr
 22 #         if person.blood <= 0:
 23 #             print("%s咬了%s,%s被咬死了"%(self.name,person.name,person.name))
 24 #
 25 # jin = Dog("laoban",100,200,"buxiang")
 26 # alex = Person("alex",200,10,"不详")
 27 # # print(jin.name)
 28 # jin.bite(alex)
 29 # print(alex.blood)
 30 # alex.attack(jin)
 31 # print(jin.blood)
 32 
 33 
 34 # 练习
 35 """
 36 小明,10岁,男,上山去砍柴
 37 小明,10岁,男,开车去东北
 38 小明,10岁,男,最爱大保健
 39 老李,90岁,男,上山去砍柴
 40 老李,90岁,男,开车去东北
 41 老李,90岁,男,最爱大保健
 42 """
 43 
 44 # class Person:
 45 #     def __init__(self,name,age,sex):
 46 #         self.name = name
 47 #         self.age = age
 48 #         self.sex = sex
 49 #     def shangshan(self):
 50 #         print("%s, %s岁, %s, 上山去砍柴"%(self.name,self.age,self.sex))
 51 #
 52 #     def drive(self):
 53 #         print("%s, %s岁, %s, 开车去东北"%(self.name,self.age,self.sex))
 54 #
 55 #     def hobby(self):
 56 #         print("%s, %s岁, %s, 最爱大保健"%(self.name,self.age,self.sex))
 57 #
 58 # min = Person("小明","10","男")
 59 # min.shangshan()
 60 # min.drive()
 61 # min.hobby()
 62 # li = Person("老李","90","男")
 63 # li.shangshan()
 64 # li.drive()
 65 # li.hobby()
 66 
 67 # circle  属性 半径 , 两个方法:求周长和面积
 68 # from math import pi
 69 # class Circle:
 70 #     def __init__(self,r):
 71 #         self.r = r
 72 #     def area(self):
 73 #         return pi*(self.r**2)
 74 #     def circleMeter(self):
 75 #         return 2*pi*self.r
 76 # c1 = Circle(5)
 77 # print(c1.area())
 78 # print(c1.circleMeter())
 79 
 80 """
 81 class 里面
 82 函数: 就是方法    动态属性  # 类中可以定义方法,方法都有一个必须传的参数self
 83 变量: 就是类属性  静态属性  # 类中可以定义静态属性
 84 
 85 __init__方法  初始化方法
 86     python帮我们创建了一个对象self
 87     每当我们调用类的时候就会自动触发这个方法。默认传self
 88     在init方法里面可以对self进行赋值
 89 
 90 self是什么  self拥有属性都属于对象
 91        在类的内部,self就是一个对象
 92 
 93 实例化  
 94    对象 = 类(参数是init方法的) 这就是实例化
 95 
 96 实例、对象
 97     实例就是对象,对象就是实例
 98     完全没有区别
 99     
100 对象查看属性
101      对象.属性名
102      
103 对象调用方法
104    对象.方法名(参数)  
105 """
106 
107 # 类里  可以定义两种属性
108 # 静态属性
109 # 动态属性
110 
111 
112 # class Course:
113 #     language = "Chinese"
114 #     def __init__(self,teacher,course_name,period,price):
115 #         self.teacher = teacher
116 #         self.name = course_name
117 #         self.period = period
118 #         self.price = price
119 #     def func(self,r):
120 #         print("调用了")
121 # Course.language
122 # Course.language = "English"  #  只能用这种方法去修改类里面的静态属性
123 # print(Course.language)
124 # print(Course.__dict__)
125 # Course.__dict__["language"] = "Russian"  #  这行代码报错 不能通过__dict__来修改静态属性
126 # python1 = Course("egon","python","six_months",20000)
127 # print(python1.language)
128 # python1.language = "English" #  对象改变不了类中的属性
129 # print(python1.language)
130 # print(Course.language)
131  # 类中的静态变量  可以被对象和类调用
132 
133 
134 # 创建一个类,每实例化一个对象就记录下来
135 # 最终所有的对象共享这个数据
136 # class Foo:
137 #     count = 0
138 #     def __init__(self):
139 #         Foo.count += 1
140 #
141 # f1 = Foo()
142 # f2 = Foo()
143 # print(f1.count)
144 # print(f2.count)
145 # f3 = Foo()
146 # print(f3.count)
147 
148 # class Foo:
149 #     def func(self):
150 #         print("func")
151 #
152 # f1 = Foo()
153 # print(Foo.func)
154 # print(f1.func)
155 
156 
157 
158 # 组合
159 class Dog:
160     def __init__(self,name,aggr,blood,kind):
161         self.name = name
162         self.aggr = aggr
163         self.blood = blood
164         self.kind = kind
165 
166     def bite(self,person):
167         person.blood -= self.aggr
168 
169 class Person:
170     def __init__(self,name,aggr,blood,sex):
171         self.name = name
172         self.aggr = aggr
173         self.blood = blood
174         self.kind = sex
175         self.money = 0
176 
177     def attack(self,dog):
178         dog.blood -= self.aggr
179 
180     def get_weapon(self,weapon):
181         if self.money >= weapon.price:
182             self.money -= weapon.price
183             self.weapon = weapon
184             self.aggr += weapon.aggr
185         else:
186             print("余额不足,请先充值")
187 
188 class Weapon:
189     def __init__(self,name,aggr,njd,price):  # aggr 攻击力 njd 耐久度
190         self.name = name
191         self.aggr = aggr
192         self.njd = njd
193         self.price = price
194     def hand18(self,dog):
195         if self.njd > 0:
196             dog.blood -= self.aggr * 2
197             self.njd -= 1
198 
199 
200 alex = Person("alex",1,100,"不详")
201 jin = Dog("老板",2,200,"不详")
202 w = Weapon("打狗棒",100,3,998)
203 # 怎么给alex装上打狗棒
204 alex.money += 1000
205 alex.get_weapon(w)
206 print(alex.weapon)
207 print(alex.aggr)
208 
209 alex.attack(jin)
210 print(jin.blood)
211 
212 alex.weapon.hand18(jin)
213 print(jin.blood)
214 
215 # 装备
216 # 伤害
217 # 血量
218 
219 # 组合 :一个对象的属性值是另外一个类的对象

猜你喜欢

转载自www.cnblogs.com/pioneerLee/p/10223398.html