On Saturday, July 29, 2017 at 3:49:55 PM UTC-4, MRAB wrote: > On 2017-07-29 20:16, new_to_c0ding wrote: > > Hello all, > > I have been scratching my head since morning but could not understand this > > quiz question. I would appreciate if someone could help me understand what > > is it asking me to do. I dont need the answer but just the right direction > > to look at. > > > > ### Do not change the Location or Campus classes. ### > > ### Location class is the same as in lecture. ### > > class Location(object): > > def __init__(self, x, y): > > self.x = x > > self.y = y > > def move(self, deltaX, deltaY): > > return Location(self.x + deltaX, self.y + deltaY) > > def getX(self): > > return self.x > > def getY(self): > > return self.y > > def dist_from(self, other): > > xDist = self.x - other.x > > yDist = self.y - other.y > > return (xDist**2 + yDist**2)**0.5 > > def __eq__(self, other): > > return (self.x == other.x and self.y == other.y) > > def __str__(self): > > return '<' + str(self.x) + ',' + str(self.y) + '>' > > > > class Campus(object): > > def __init__(self, center_loc): > > self.center_loc = center_loc > > def __str__(self): > > return str(self.center_loc) > > class MITCampus(Campus): > > """ A MITCampus is a Campus that contains tents """ > > def __init__(self, center_loc, tent_loc = Location(0,0)): > > """ Assumes center_loc and tent_loc are Location objects > > Initializes a new Campus centered at location center_loc > > with a tent at location tent_loc """ > > # Your code here > > > > def add_tent(self, new_tent_loc): > > """ Assumes new_tent_loc is a Location > > Adds new_tent_loc to the campus only if the tent is at least 0.5 > > distance > > away from all other tents already there. Campus is unchanged > > otherwise. > > Returns True if it could add the tent, False otherwise. """ > > # Your code here > > > > def remove_tent(self, tent_loc): > > """ Assumes tent_loc is a Location > > Removes tent_loc from the campus. > > Raises a ValueError if there is not a tent at tent_loc. > > Does not return anything """ > > # Your code here > > > > def get_tents(self): > > """ Returns a list of all tents on the campus. The list should > > contain > > the string representation of the Location of a tent. The list > > should > > be sorted by the x coordinate of the location. """ > > # Your code here > > > > > > > > -=-=-=-=-=-=-= > > > > For example, if c = MITCampus(Location(1,2)) then executing the following > > sequence of commands: > > > > c.add_tent(Location(2,3)) should return True > > c.add_tent(Location(1,2)) should return True > > c.add_tent(Location(0,0)) should return False > > c.add_tent(Location(2,3)) should return False > > c.get_tents() should return ['<0,0>', '<1,2>', '<2,3>'] > > > > -=-=-=-=-=-=- > > > > Now as per instructions, class MITCampus(Campus) has (self, center_loc, > > tent_loc = Location(0,0)) and it is mentioned that center_loc and tent_loc > > are Location objects but when I code them as Locations, I get error from > > the tester: > > Traceback (most recent call last): > > File "submission.py", line 61, in __init__ > > self.cloc=Location(center_loc) > > TypeError: __init__() missing 1 required positional argument: 'y' > > > > -=-=-=-== > > > > Please help > > > Location.__init__ expects 3 arguments: self, x, y > > self is already provided, so that leaves 2 arguments: x, y > > You're giving it only 1 argument: center_loc > > What is center_loc? Is it a tuple? > > If it is, then you could do: > > self.cloc=Location(center_loc[0], center_loc[1]) > > or: > > self.cloc=Location(*center_loc)
Hi, thanks for replying. As per the description it is a Location object. And that result is from the tester so it should have provided two values if it was expecting it to be a location object. -- https://mail.python.org/mailman/listinfo/python-list