1. 程式人生 > >python 基礎複習 13

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 # 組合 :一個物件的屬性值是另外一個類的物件