Issue with python module importing
Question: In dir tree looks like this

PyPong \+ Main.py \+ Rectangle.py

Now, I have imported Rectangle.py like this in Main.py

    
    
    import pygame, sys, Rectangle
    

However, whenever I try making an instance of the class Rectangle.py like here

    
    
    rectangles.append(Rectangle(400 + x * rectangleWidth + x * 10, 30 + y * rectangleHeight + y * 10, rectangleWidth, rectangleHeight, (randint(0, 255), randint(0, 255), randint(0, 255)), screen))
    

into this array

    
    
    rectangles = []
    

I recieve this error:

    
    
    TypeError: 'module' object is not callable
    

Any help is greatly appreciated

Also, here is the full Rectangle.py

    
    
    class Rectangle:
    
        y = 0
        x = 0
        width = 0
        height = 0
        color = 0
        screen = 0
    
        GO_UP = 1
        GO_DOWN = 2
        GO_LEFT = 3
        GO_RIGHT = 4
    
        closeX = 0
        closeY = 0
    
        removed = False
    
        def __init__(self, x, y, width, height, color, screen):
            self.x = x
            self.y = y
            self.height = height
            self.width = width
            self.color = color
            self.screen = screen
    
        def render(self):
            pygame.draw.rect(self.screen, self.color, (self.x, self.y, self.width, self.height), 0)
            pass
    
        def intersects(self, x, y, r):
            #TOP SIDE
            self.closeX = 0
            self.closeY = 0
            intersectsTop = True;
            if x <= self.x: self.closeX = self.x
            elif x >= self.x + self.width: self.closeX = self.x + self.width
            else: self.closeX = self.x
            self.closeY = self.y
            if abs(x - self.closeX) >= r: intersectsTop = False
            if abs(y - self.closeY) >= r: intersectsTop = False
            if intersectsTop: 
                self.remove()
                return self.GO_UP
    
            #LEFT SIDE
            self.closeX = 0
            self.closeY = 0
            intersectsLeft = True
            if y <= self.y: self.closeY = self.y
            elif y >= self.y + self.height: self.closeY = self.y + self.height
            else: self.closeY = y;
            self.closeX = self.x
            if abs(x - self.closeX) >= r: intersectsLeft = False
            if abs(y - self.closeY) >= r: intersectsLeft = False
            if intersectsLeft: 
                self.remove()
                return self.GO_LEFT
    
            #RIGHT SIDE
            self.closeX = 0
            self.closeY = 0
            intersectsRight = True
            if y <= self.y: self.closeY = self.y
            elif y >= self.y + self.height: self.closeY = self.y + self.height
            else: self.closeY = y;
            self.closeX = self.x + self.width
            if abs(x - self.closeX) >= r: intersectsRight = False
            if abs(y - self.closeY) >= r: intersectsRight = False
            if intersectsRight: 
                self.remove()
                return self.GO_RIGHT
    
            #BOTTOM SIDE
            self.closeX = 0
            self.closeY = 0
            intersectsBottom = True;
            if x <= self.x: self.closeX = self.x
            elif x >= self.x + self.width: self.closeX = self.x + self.width
            else: self.closeX = self.x
            self.closeY = self.y + self.height
            if abs(x - self.closeX) >= r: intersectsBottom = False
            if abs(y - self.closeY) >= r: intersectsBottom = False
            if intersectsBottom: 
                self.remove()
                return self.GO_DOWN
            pass
    
        def remove(self):
            self.removed = True
            pass
    


Answer: You need to import the class from the module:

    
    
    from Rectangle import Rectangle
    

or refer to the class as an attribute of the module you imported:

    
    
    rectangles.append(Rectangle.Rectangle(400 + x * rectangleWidth + x * 10, 30 + y * rectangleHeight + y * 10, rectangleWidth, rectangleHeight, (randint(0, 255), randint(0, 255), randint(0, 255)), screen))
    

This is one reason for the [Python style guide
PEP-8](http://www.python.org/dev/peps/pep-0008/#package-and-module-names) to
recommend that you use all-lowercase names for your module files, to avoid
confusing the module with the contents of the module.

