unsupported operand type(s) for -: 'NotImplementedType' ....

I am a newbie scripter to Panda3D but I did all the tutorials and such. I’ve been working on a protogame and now I’m get this error:unsupported operand type(s) for -: ‘NotImplementedType’ and ‘init’ everything I run it. I comes up when relating to
sRotP = self.pship.hprInterval(.2,Vec3(0,self.pship.getP()-(1*dir),0))

this line

Here is the whole script:

SpaceGame

Exploring Space

import direct.directbase.DirectStart
import sys
from pandac.PandaModules import *
from direct.showbase.DirectObject import DirectObject
from direct.actor.Actor import Actor
from direct.interval.IntervalGlobal import *
from direct.interval.FunctionInterval import HprInterval

class main(DirectObject):
def init(self):
self.spcontrols()
self.menucontrols()
self.pship = self.fighter()
self.camera()
run()

def camera(self):
    base.disableMouse()
    camera.reparentTo(render)
    camera.setPos(Vec3(0,10,10))
    
    print "Camera working"
    
def menucontrols(self):
    self.accept('escape',sys.exit)
    
def spcontrols(self):
    # Controls for Outer Space
    # Pitch down
    self.accept('w-repeat',self.rotp,[-1])
    # Pitch up
    self.accept('s-repeat',self.rotp,[1])
    # Roll left
    self.accept('a-repeat',self.rotr,[-1])
    # Roll right
    self.accept('d-repeat',self.rotr,[1])

def rotp(self,dir):
    sRotP = self.pship.hprInterval(.2,Vec3(0,self.pship.getP()-(1*dir),0))
    sRotP.start()
    print "Control working"
def rotr(self,dir):
    sRotR = self.pship.hprInterval(.2,Vec3(0,0,self.pship.getP()-(1*dir)))
    sRotR.start()
    print "Control working"

class fighter(NodePath):
    def __init__(self):
        self.ship = loader.loadModel("panda")
        self.ship.reparentTo(render)
        self.ship.setScale(1)
        self.ship.setPos(Vec3(0,0,0))

Main = main()

Please help, I have no idea what it means.