I am trying to set a rect on my background image but an error keeps showing up. The following error message is created when I run the code:
AttributeError: type object 'Background' has no attribute 'get_rect'
It seems to be saying the problem is with this line:
self.rect = self.image.get_rect()
And here is the full py file:
import pygame
from pygame.locals import *
# Colors
RED     = (255,0,0)
GREEN   = (0,255,0)
BLUE    = (0,0,255)
# Screen Size
SCREEN_X = 400
SCREEN_Y = 400
# Loading Images
Background = pygame.image.load('StarBackground.png')
PowerShip = pygame.image.load('PowerShip.png')
class Ship(pygame.sprite.Sprite):
    # Movement rate of change
    change_x = 0
    change_y = 0
    # Methods
    def __init__(self):
        # Starts the parent's constructor
        pygame.sprite.Sprite.__init__(self)
        # Sets the ship's image
        self.image = PowerShip
        # Sets the ship's rect
        self.rect = self.image.get_rect()
        # Set the ship's start location
        self.rect.x = 0
        self.rect.y = 0
    def move_right(self):
        self.change_x = 1
    def move_left(self):
        self.change_x = 1
    def move_up(self):
        self.change_y = 1
    def move_down(self):
        self.change_y = 1
    def stop_x(self):
        self.change_x = 0
    def stop_y(self):
        self.change_y = 0
    def update(self):
        self.rect.x += self.change_x
        self.rect.y += self.change_y
class Background(pygame.sprite.Sprite):
    def __init__(self):
        # Starts the parent's constructor
        pygame.sprite.Sprite.__init__(self)
        # Sets the ship's image
        self.image = Background
        # Sets the ship's rect
        self.rect = self.image.get_rect()
        # Sets the background's starting location
        self.rect.x = 0
        self.rect.y = 0
def main():
    pygame.init()
    # Set the height and width of the screen
    size = [SCREEN_X, SCREEN_Y]
    screen = pygame.display.set_mode(size)
    pygame.display.set_caption("Space Adventure")
    # Creating the game objects
    background = Background()
    ship = Ship()
    # Close button exit code
    finished = False
    # Manages the frames per second
    clock = pygame.time.Clock()
    # Game loop
    while not finished:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                finished = True
            keyboardInput = pygame.key.get_pressed()
            if event.type == pygame.KEYDOWN:
                if keyboardInput[K_RIGHT]:
                    ship.move_right()
                if keyboardInput[K_LEFT]:
                    ship.move_left()
                if keyboardInput[K_UP]:
                    ship.move_up()
                if keyboardInput[K_DOWN]:
                    ship.move_down()
            if event.type == pygame.KEYUP:
                if keyboardInput[K_RIGHT]:
                    ship.stop_x()
                if keyboardInput[K_LEFT]:
                    ship.stop_x()
                if keyboardInput[K_UP]:
                    ship.stop_y()
                if keyboardInput[K_DOWN]:
                    ship.stop_y()
            screen.blit(background.image,background.rect)
            screen.blit(ship.image,ship.rect)
            clock.tick(60)
            pygame.display.flip()
            Background.update()
            Ship.update()
    pygame.quit()
if __name__ == "__main__":
    main()
Edit: The class name Background was the same as the variable name Background. I had to change the names to something different to fix the issue.