Problems with code
clp2 at rebertia.com
Mon Mar 30 18:17:02 CEST 2009
2009/3/30 Zach Goscha <ZTank5 at gmail.com>:
> I am trying to call an unbound method (Map.Background) but getting the
> following error:
> TypeError: unbound method background() must be called with Map instance as
> first argument (got nothing instead)
> Here is some of the code(not completed)
> Thanks in Advance
> - Zach
> class Knight(games.Sprite):
> """ A moving knight. """
> SWORD_DELAY = 50
> sword_wait = 0
> def update(self):
> """ moving knight based on keys pressed. """
> if self.bottom < 0:
> self.top = games.screen.height
> class Map(games.Sprite):
> def background(self):
> new_back = games.load_image("map3.jpg",
> transparent = False)
In the above code, you do `Map.background()`; this is invalid.
background() is an /instance/ method of Map objects, *not* a
classmethod of Map, so you can't call it on the class itself, only
instances of it. In Java-ish terms, you're trying to call a non-static
method like it's a static method.
You either need to make background() a classmethod, or create an
instance of Map to call the method on instead (perhaps you have a
self.map variable and this is just a typo?).
I have a blog:
More information about the Python-list