How To Use A Method In A Class From Another Class That Inherits From Yet Another Class Python
I have 3 classes : class Scene(object): def enter(self): pass class CentralCorridor(Scene): def enter(self): pass class Map(object): def __init__(self
Solution 1:
1) It's a good practice for Python classes to start with an uppercase letter. Furthermore, the name map is a built-in python function.
2) what's wrong with passing a Scene instance on your map class?
class Map(object):
def __init__(self, scene):
self.scene = scene
def enter(self):
self.scene.enter()
a_map = Map(CentralCorridor())
Solution 2:
Would this code help:
class Scene(object):
def enter(self):
print 'Scene Object'
class CentralCorridor(Scene):
def enter(self):
print 'CentralCorridor object'
class Map(object):
def __init__(self, start_game):
self.start_game = start_game
if self.start_game == 'central_corridor':
whatever = CentralCorridor().enter()
a_map = Map('central_corridor')
You should not use map, but Map instead, because map() is a build-in function
Solution 3:
First, you should rename your map class, since map
is a builtin function you'll shadow here.
To answer your question: you can call CentralCorridor.enter(self) to explicitly call CentralCorridor's enter method on the current instance (which does not have to be a CentralCorridor instance).
Post a Comment for "How To Use A Method In A Class From Another Class That Inherits From Yet Another Class Python"