Jon Clements wrote:
On 5 Aug, 08:25, Brandon McCombs <n...@none.com> wrote:
Hello,

I'm building an elevator simulator for a class assignment. I recently
ran into a roadblock and don't know how to fix it. For some reason, in
my checkQueue function below, the call to self.goUp() is never executed.
It is on the last line of code I pasted in. I can put print statements
before and after the call and I have a print statement in goUp() itself.
  Only the print statements before and after the call are executed. The
one inside goUp() is never executed because goUp() never seems to be
executed. How can that be? I don't get any errors when the script
executes. Surely this isn't some limitation I'm encountering?

thanks

sorry about the formatting

---------------------------------------------
class Elevator(Process):
def __init__(self,name):
        Process.__init__(self,name=name)
        self.numPassengers = 0
        self.passengerList = []
        self.passengerWaitQ = []
        self.currentFloor = 1
        self.idle = 1
        self.newPassengers = 0
def goUp(self):
        print "here"
        bubbleSort(self.passengerList, len(self.passengerList))
        self.currentFloor += 1
        if len(self.passengerList) > 0:
           for p in self.passengerList:
              if self.currentFloor == p.destination:
                yield (p.destination - self.currenteFloor) * TRAVELTIME, self
                reactivate(p)
                p.inBuilding()
              else:
                self.goUp()

def checkQueue(self):
        if (len(self.passengerWaitQ)) > 0 and len(self.passengerList) <
MAXCAPACITY:
        if len(self.passengerWaitQ) < MAXCAPACITY:
            self.newPassengers = len(self.passengerWaitQ)
        else:
             self.newPassengers = MAXCAPACITY - len(self.passengerList)
        for i in range(0,self.newPassengers):
          self.passengerList.append(self.passengerWaitQ.pop())
        self.goUp()

Hi Brandon,

Nice one at having a good crack at coding before posting!

From your posted code, I'm struggling to see what's trying to be
taught to you for this class assignment.

not relevant at this point


As a note it'll be worth reading PEP 8 regarding naming conventions,
because it looks very Java-ish to me!

ok but not relevant


(I might be taking too much a real-world approach in the following,
but do with it as you will...)

I'm assuming that MAXCAPACITY and TRAVELTIME are globals somewhere.
Although what I'm thinking is that different Elevators will have
different capacities and different floors they service. An Elevator is
*not* going to know its number of passengers (the most it could do is
capacity based on weight restrictions) therefore it's not going to
know the number of new passengers on each floor either.

okay but not relevant to the problem at hand


A couple of things that'd be worthwhile:

1) Post the requirements for your assignment - what's it supposed to
output etc...

that isn't relevant for determining at the python level why a function simply isn't being called

2) Go find an elevator, take a pen and pad with you, and stand in it
for 30 mins or so, and see how the real thing deals with situations
and make notes. ie, does it queue requests, or decide to take the next
nearest floor, when does it stop and open etc...?

hth

Jon.


actually it doesn't help at all since you decided to focus on everything but my actual question of why a function call wasn't working but rather question the validity of the program itself
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to