I would like to give some feedback about exec(). When I run my code for this mission, it has this error message:
NameError: name 'self' is not defined
<listcomp>, 11
corners, 11
<module>, 32
Here's the listconp on line 11:
[exec("self."+direction,globals(),locals()) for direction in corner.split("-")]
Here's the rest of the code I was using:
class Building:
def __init__(self, south, west, width_WE, width_NS, height=10):
self.south,self.west,self.width_WE,self.width_NS,self.height=south,west,\
width_WE,width_NS,height
def corners(self):
self.north=self.south+self.width_NS
self.east=self.west+self.width_WE
D={}
for corner in ("north-west", "north-east", "south-west", "south-east"):
D[corner]=[exec("self."+direction,globals(),locals()) for direction in corner.split("-")]
return D
def area(self):
return width_NS*width_WE
def volume(self):
raise NotImplementedError
def __repr__(self):
return "Building("+str([self.south, self.west, self.width_WE, \
self.width_NS, self.height]).strip("[]")+")"
From: https://checkio.org/mission/building-base/solve/
HTTP_USER_AGENT:
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Created at: 2016/08/18 16:54; Updated at: 2016/08/19 15:18