面向物件【林老師版】:面向物件練習(六)
阿新 • • 發佈:2018-11-06
一、編寫一個學生類,產生一堆學生物件
1、程式碼
class Student: school='luffycity' def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex def learn(self): print('%s is learing' %self.name) stu1=Student('alex','male',38) stu2=Student('jinxing','female',78) stu3=Student('egon','male',18) print(stu1.__dict__) print(stu2.__dict__) print(stu3.__dict__)
輸出
{'name': 'alex', 'sex': 38, 'age': 'male'} {'name': 'jinxing', 'sex': 78, 'age': 'female'} {'name': 'egon', 'sex': 18, 'age': 'male'}
二、有一個計數器(屬性),統計總共例項了多少個物件
1、程式碼
class Student: school='luffycity' count=0 def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex # self.count+=1 Student.count+=1 def learn(self): print('%s is learing' %self.name) stu1=Student('alex','male',38) stu2=Student('jinxing','female',78) stu3=Student('egon','male',18) stu4=Student('luoahong','male',18) print(Student.count) print(stu1.count) print(stu2.count) print(stu3.count) print(stu4.count) print(stu1.__dict__) print(stu2.__dict__) print(stu3.__dict__)
2、輸出
4 4 4 4 4 {'name': 'alex', 'sex': 38, 'age': 'male'} {'name': 'jinxing', 'sex': 78, 'age': 'female'} {'name': 'egon', 'sex': 18, 'age': 'male'}
三、練習2:模仿LoL定義兩個英雄類,
要求:
英雄需要有暱稱、攻擊力、生命值等屬性;
例項化出兩個英雄物件;
英雄之間可以互毆,被毆打的一方掉血,血量小於0則判定為死亡。
1、程式碼
class Garen: camp='Demacia' def __init__(self,nickname,life_value,aggresivity): self.nickname=nickname self.life_value=life_value self.aggresivity=aggresivity def attack(self,enemy): enemy.life_value-=self.aggresivity #r1.life_value-=g1.aggresivity class Riven: camp = 'Noxus' def __init__(self, nickname, life_value, aggresivity): self.nickname = nickname self.life_value = life_value self.aggresivity = aggresivity def attack(self, enemy): enemy.life_value -= self.aggresivity g1=Garen('草叢倫',100,30) r1=Riven('可愛的銳雯雯',80,50) print(r1.life_value) g1.attack(r1) print(r1.life_value)
2、輸出
80 50