Q:

Python class 'int' object not callable

I have googled this error already and didn't understand what it is. I am trying to make a simple game with classes and the enemy class I have won't allow me to call the attack method. 
This is the line it says the error is on:
enemy.attack(player1)
if player1.dead == True:
    print "You have lost"

And this is the method:
def attack(self, player):
    #defend = randint(0,10)

    damage = randint(0, self.strength)
    if damage == 0:
        print "You missed"
    elif damage < self.strength:
        print "Hit for", damage,"damage."
        player.health = player.health - damage
    elif damage == self.strength:
        print "Critical hit!"
        player.health = player.health - (damage + 2) 
    player.check_dead(player)

If you need more information about the code please ask. I'm not sure what information I am meant to give you because I don't understand the error. 
Error in the console: 
Your health: 100
Attack or Heal attack
Hit for 3 damage.
97

Traceback (most recent call last):
  File "E:\Computing\player.py", line 119, in <module>
    enemy.attack()
TypeError: 'int' object is not callable

A:

At some point you assigned an int value to enemy.attack, then tried to call enemy.attack() as a function.
Look for a line like xyz.attack = {something} and scrutinize what {something} is.

Advanced debugging technique - make enemy.attack a read-only property which returns a do-nothing function, ie
class enemy:
    @property
    def attack(self, player):
        def null_fn():
            pass
        return null_fn

... now running your code will throw an AttributeError pointing at the line where you try to assign a value to attack ;-)

