Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8866845
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T16:53:10+00:00 2026-06-14T16:53:10+00:00

So I have some Python code that’s structured something like this; class GameObject(pygame.spriteDirtySprite): def

  • 0

So I have some Python code that’s structured something like this;

class GameObject(pygame.spriteDirtySprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = None
        self.rect  = None
        self.state = None

class Bullet(gameobject.GameObject):
    FRAME  = pygame.Rect(23, 5, 5, 5)
    STATES = config.Enum('IDLE', 'FIRED', 'MOVING', 'COLLIDE', 'RESET')

    def __init__(self):
        gameobject.GameObject.__init__(self)
        self.image = config.SPRITES.subsurface(self.__class__.FRAME)
        self.rect  = self.__class__.START_POS.copy()
        self.state = self.__class__.STATES.IDLE

class ShipBullet(bullet.Bullet):
    START_POS = pygame.Rect(somewhere)

    def __init__(self):
        super(bullet.Bullet, self).__init__()
        self.add(ingame.PLAYER)

class EnemyBullet(bullet.Bullet):
    START_POS = pygame.Rect(somewhere else)

    def __init__(self):
        super(bullet.Bullet, self).__init__()
        self.add(ingame.ENEMIES)

These are actually in different files, but this is an inheritance issue, not a dependency issue.

Note that ShipBullet and EnemyBullet have different START_POS static members, but Bullet doesn’t. Since Bullet will never actually be created (if this were C++ I’d make it an abstract class), that’s intentional. My reasoning is that when I call Bullet.__init__() from its subclasses, however, said subclasses will refer to their own START_POS in initializing their members. That’s not the case, however; ShipBullet.rect (likewise for EnemyBullet) is None. I believe image might be None too, but I haven’t tested for that yet. Anyone mind helping me figure out what I’m doing wrong?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-14T16:53:11+00:00Added an answer on June 14, 2026 at 4:53 pm

    Use super(EnemyBullet, self).__init__() (and similar for ShipBullet). super uses the class in the first argument to determine the next base in the MRO.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have some Python code that looks something like this: rates = {3: [((17500,
I have some python code that looks like this: return [x.doSomething() for x in
I was writing some Python code that involved something like this values = {}
I am using python 2.7, I have some code that looks like this: task1()
I have a python ndarray temp in some code I'm reading that suffers this:
I have some python code that I wrote to convert a python list into
I have some python code that currently performs expensive computation by performing the computation
I have some code in a python string that contains extraneous empty lines. I
I have some Python code that's receiving a string with bad unicode in it.
I have some python code for Google App Engine that responds with the string

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.