[TOC]
1. 什么是对象?什么是类?
对象是特征与技能的结合体,类是一系列对象相同的特征与技能的结合体
2.绑定方法的有什么特点
- 由对象调用类中的函数称之为对象的绑定方法,不同的对象掉用该绑定方法,则会将不同的对像传入该绑定方法中
- 对象的绑定方法是由对象调用的,特殊之处就是把对象作为第一个参数传入该绑定方法中
3.基于面向对象设计一个对战游戏
# 仿制英雄联盟英雄角色
class Garen:
camp = 'Demacia'
def __init__(self, name, aggr=58, life=455, money=100, armor=10):
self.name = name
self.aggr = aggr
self.life = life
self.money = money
self.armor = armor
def attack(self, enemy):
damage = self.aggr - enemy.armor
enemy.life -= damage
class Riven:
camp = 'Noxus'
def __init__(self, name, aggr=54, life=414, money=1001, armor=3):
self.name = name
self.aggr = aggr
self.life = life
self.money = money
self.armor = armor
def attack(self, enemy):
damage = self.aggr - enemy.armor
enemy.life -= damage
class BlackCleaver: # 装备
def __init__(self, price=475, aggr=9, life=100):
self.price = price
self.aggr=aggr
self.life=life
def update(self, obj):
obj.money -= self.price
obj.aggr += self.aggr
obj.life += self.life
def fire(self, obj):
obj.life -= 1000 # 主动技能,喷火
g1 = Garen('盖伦')
r1 = Riven('锐雯')
b1 = BlackCleaver()
print(r1.aggr, r1.life, r1.money)
if r1.money > b1.price:
r1.b1 = b1
b1.update(r1)
print(r1.aggr, r1.life, r1.money)
print(g1.life)
r1.attack(g1)
print(g1.life)
r1.b1.fire(g1)
print(g1.life)