[TOC]
1. 什么是对象?什么是类?
对象试特征与技能的结合体
类是一些列对象相同的特征与技能的结合体
2. 绑定方法有什么特点
对象的绑定方法,是由对象来调用的,特殊之处就是把对象当做第一个参数传入该方法中
3. 基于面向对象设计一个对战游戏
class Yi:
camp = 'Ionia'
def __init__(
self,
heroname,
aggressivity=60,
life_value=430,
money=600,
armor=30):
self.heroname = heroname
self.aggressivity = aggressivity
self.life_value = life_value
self.money = money
self.armor = armor
def attack(self, enemy):
damage_value = self.aggressivity - enemy.armor
enemy.life_value -= damage_value
class Fiona:
camp = 'Demacia'
def __init__(
self,
heroname,
aggressivity=56,
life_value=450,
money=200,
armor=15):
self.heroname = heroname
self.aggressivity = aggressivity
self.life_value = life_value
self.money = money
self.armor = armor
def attack(self, enemy):
damage_value = self.aggressivity - enemy.armor
enemy.life_value -= damage_value
class DoranSword:
def __init__(self, price=475, aggrev=10, life_value=100):
self.price = price
self.aggrev = aggrev
self.life_value = life_value
def update(self, obj):
obj.money -= self.price
obj.aggressivity += self.aggrev
obj.life_value += self.life_value
y1 = Yi('易大师')
f1 = Fiona('菲奥娜')
d1 = DoranSword()
print(f'易的属性:{y1.aggressivity}攻击力,{y1.life_value}生命值,{y1.money}金币')
if y1.money > d1.price:
y1.d1 = d1
d1.update(y1)
print(f'易的属性:{y1.aggressivity}攻击力,{y1.life_value}生命值,{y1.money}金币')
while True:
if f1.life_value <= 0:
print('菲奥娜阵亡了!')
break
print(f'菲奥娜的血量:{f1.life_value}')
y1.attack(f1)