day19作业

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)
原文地址:https://www.cnblogs.com/setcreed/p/11644150.html