When is it best to use a class in Python?

后端 未结 4 2004
小鲜肉
小鲜肉 2021-01-02 10:47

I\'m new to python and programming in general, so would really appreciate any clarification on this point.

For example, in the following code:

    #         


        
4条回答
  •  -上瘾入骨i
    2021-01-02 11:22

    what about my monsters? he can fight another monster! Presumably your functional monster cannot do that ;-)

    class Monster(object): 
        def __init__(self, level, damage, duration): 
            self.level    = level
            self.damage   = damage
            self.duration = duration
        def fight(self, enemy):
            if not isinstance(enemy, Monster) :
                print "The enemy is not a monster, so I can't fight it."
                return None
            else :
                print "Starting fighting"
            print "My monster's level is ", self.level
            print "My monster's damage is ", self.damage
            print "My monster's attack duration is ", self.duration
            print "The enemy's level is ", enemy.level
            print "The enemy's damage is ", enemy.damage
            print "The enemy's attack duration is ", enemy.duration
    
            result_of_fight = 3.*(self.level    - enemy.level)  + \
                              2.*(self.damage   - enemy.damage) + \
                              1.*(self.duration - enemy.duration)
            if result_of_fight > 0 :
                print "My monster wins the brutal battle"
            elif result_of_fight < 0 :
                print "My monster is defeated by the enemy"
            else :
                print "The two monsters both retreat for a draw"
            return result_of_fight
        def sleep(self, days): 
            print "The monster is tired and decides to rest for %3d days" % days
            self.level    += 3.0 * days
            self.damage   += 2.0 * days
            self.duration += 2.0 * days
    x = Monster(1, 2, 3)
    y = Monster(2, 3, 4)
    x.fight(y)
    x.sleep(10) 
    

    so:

    Starting fighting
    My monster's level is  1
    My monster's damage is  2
    My monster's attack duration is  3
    The enemy's level is  2
    The enemy's damage is  3
    The enemy's attack duration is  4
    My monster is defeated by the enemy
    The monster is tired and decides to rest for  10 days
    

提交回复
热议问题