new to python - trouble calling a function from another function
Brandon McCombs
none at none.com
Thu Aug 5 11:15:48 EDT 2010
Jon Clements wrote:
> On 5 Aug, 08:25, Brandon McCombs <n... at 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
More information about the Python-list
mailing list