method not callable

hey all, i have a problem.i wanted to do
if jump == 0:
#code

but i get an error.
it says

Known pipe types:
  wdxGraphicsPipe9
(3 aux display modules not yet loaded.)
:util(warning): Adjusting global clock's real time by 0.318433 seconds.
DirectStart: Starting the game.
Warning: DirectNotify: category 'Interval' already exists
Creating Player and Levels
Traceback (most recent call last):
  File "C:\Panda3D-1.4.2\Work\main.py", line 42, in ?
    w = Main()
  File "C:\Panda3D-1.4.2\Work\main.py", line 27, in __init__
    self.start()
  File "C:\Panda3D-1.4.2\Work\main.py", line 31, in start
    self.Player = Player() #Init player
  File "C:\Panda3D-1.4.2\Work\source\Player.py", line 49, in __init__
    self.controls()
  File "C:\Panda3D-1.4.2\Work\source\Player.py", line 71, in controls
    self.accept("space",    self.jump)
  File "C:\Panda3D-1.4.2\direct\src\showbase\DirectObject.py", line 24, in accept
    return messenger.accept(event, self, method, extraArgs, 1)
  File "C:\Panda3D-1.4.2\direct\src\showbase\Messenger.py", line 62, in accept
    assert callable(method), (
AssertionError: method not callable in accept (ignoring): 0 []

code

# Player Script

from pandac.PandaModules import * # Import the Panda Modules
from direct.gui.OnscreenText import OnscreenText
from direct.actor.Actor import Actor
from direct.actor import Actor
from direct.task.Task import Task
from direct.showbase.DirectObject import DirectObject
import random, sys, os, math
from direct.controls.GravityWalker import GravityWalker

class Player(DirectObject):
    def __init__(self):
        base.disableMouse()

        self.player = render.attachNewNode("camera_dummy_node")  
        #self.player.setPos(-5, 50, 8)
        self.player.setHpr(0, 0, 0)       
        camera.setHpr ( 0, 0, 0 )

        camera.reparentTo(self.player)
        camera.setPosHpr(Vec3(0,10,0),Vec3(0,10,0))
        self.heading = 180
        self.pitch = 0
        self.prevtime = 0
        
        Node=NodePath(PandaNode("PhysicsNode"))
        Node.reparentTo(render)
        self.an=ActorNode("playerphysics")
        anp=Node.attachNewNode(self.an)
        base.physicsMgr.attachPhysicalNode(self.an)
        self.an.getPhysicsObject().setMass(100) 
        self.player.reparentTo(anp)


        self.sphere = CollisionSphere(0, 0, 0, 1)
        self.playercol = self.player.attachNewNode(CollisionNode('sphere'))
        self.playercol.node().addSolid(self.sphere)
        self.playercol.show()
        base.cTrav = CollisionTraverser()#traverser
        base.cTrav.setRespectPrevTransform(1)

        self.pusher = PhysicsCollisionHandler()

        self.pusher.addCollider(self.playercol, anp)
        base.cTrav.addCollider(self.playercol, self.pusher)
        
        base.cTrav.showCollisions(render)
        self.controls()
        #end
        
        
    def controls (self):
        self.sens = 100
        self.crouch = False
        self.jump = 0
        self.moveforward = "w"
        self.moveforwardup = "w-up"
        #Key Library. all controls HAVE to go here
        self.keys = {"turnLeft" : 0, "turnRight": 0,"accel": 0, "fire": 0, "deaccel":0, "crouch" : 0}
        self.accept("escape", sys.exit)            #Escape quits
        #Other keys events set the appropriate value in our key dictionary
        self.accept("a",     self.setKey, ["turnLeft", 1])
        self.accept("a-up",  self.setKey, ["turnLeft", 0])
        self.accept("d",    self.setKey, ["turnRight", 1])
        self.accept("d-up", self.setKey, ["turnRight", 0])
        self.accept(self.moveforward,       self.setKey, ["accel", 1])
        self.accept(self.moveforwardup,    self.setKey, ["accel", 0])
        self.accept("s",       self.setKey, ["deaccel", 1])
        self.accept("s-up",    self.setKey, ["deaccel", 0])
        self.accept("space",    self.jump)
        self.accept("control",     self.setKey, ["crouch", 1])
        self.accept("control-up",   self.setKey, ["crouch", 0])
        self.gameTask = taskMgr.add(self.gameLoop, "gameLoop")
        self.gameTask.last = 0 
        
    
    def setKey(self, key, val):
        self.keys[key] = val

    def gameLoop(self, task):
        self.elapsed = task.time - self.prevtime
        self.MouseTask()
        if self.keys["turnLeft"]:
            self.strafe(-1)
        if self.keys["turnRight"]:
            self.strafe(1)
        if self.keys["accel"]:
            self.walk()
        if self.keys["deaccel"]:
            self.back()



        self.prevtime = task.time
        return Task.cont
    
    def strafe(self,dir):
        elapsed = self.elapsed
        strafe = self.player.getNetTransform().getMat().getRow3(0)
        strafe.setZ(0)
        strafe.normalize()
        self.player.setPos(self.player.getPos() + strafe*(elapsed*45*dir))
  
    def walk(self):
        self.player.setY(self.player, 1)
        
    def jump(self):
        if self.jump == 0:
            myInterval1=self.player.posInterval(2.0,Point3(0,0,60))
            myInterval1.start()
            self.jump = 1

        
        
    def back(self):
        self.player.setY(self.player, -1)

    def MouseTask(self):
        try:
            x = base.win.getPointer(0).getX()
            y = base.win.getPointer(0).getY()

            if base.win.movePointer(0, 100, 100):
                                self.heading = self.heading - (x - 100)*0.2
                                self.pitch = self.pitch - (y - 100)*0.2
            if(self.pitch < -80): self.pitch = -80
            if(self.pitch >  80): self.pitch =  80
            self.player.setHpr(self.heading,self.pitch,0)
        except: pass

You can’t have both a method called self.jump() and a variable called self.jump. The one overwrites the other.

David

def jump(self):

self.jump = 1

refer to the same thing

you make a jump equal a functions and then make jump equal 1.

Change to def jumpFunction(self) or some thing different from the valuables.