On 04/08/2013 08:40 AM, Sydney Shall wrote:
Hi,
I am  learning Python.

I use MAC OSX 10.6.8
Python 2.7.3

I have been given a project to write a program involving random walks.
I have drafted a program which has passed all the static tests, but on
testing my program i get the following error message:


Traceback (most recent call last):
   File "/Users/Sydney/Documents/6.00x Files/Problem
Sets/ProblemSet7/ps7 copy.py", line 303, in <module>
     testRobotMovement(StandardRobot, RectangularRoom)
   File "ps7_verify_movement.py", line 12, in testRobotMovement
   File "/Users/Sydney/Documents/6.00x Files/Problem
Sets/ProblemSet7/ps7 copy.py", line 285, in updatePositionAndClean
     while self.room.isPositionInRoom(self.position) == False:
   File "/Users/Sydney/Documents/6.00x Files/Problem
Sets/ProblemSet7/ps7 copy.py", line 163, in isPositionInRoom
     return self.room[(x,y)] in self.room
KeyError: (<bound method Position.getX of <__main__.Position object at
0x4699490>>, <bound method Position.getY of <__main__.Position object at
0x4699490>>)
 >>>

The program text referred to is the following, I give the whole module,
which is part of a larger program.
  def isPositionInRoom(self, pos):
         """
         Return True if pos is inside the room.

         pos: a Position object.
         returns: True if pos is in the room, False otherwise.
         """
         x = pos.getX
         y = pos.getY

You never show the code for Position.getX and Position.getY, but I'd expect they're methods that take no arguments. in that case, you need parens in order to call them.

           x = pos.getX()
           y = pos.getY()

         return self.room[(x,y)] in self.room


a simple print of x and y could have revealed this as well.


--
DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to