如何在另一个继承自另一个类python的类的类中使用方法

时间:2014-04-23 13:02:13

标签: python class

我有3个班级:

class Scene(object):
    def enter(self):
        pass

class CentralCorridor(Scene):
    def enter(self):
        pass

class Map(object):
    def __init__(self, start_game): 
        pass

类地图的启动方式如下:

a_map = map('central_corridor')

这意味着有一张地图(显然不是像迷宫一样的图形假设),其中游戏的第一个场景(游戏就像zork)是中央走廊。

所以我想在map类中使用类CentralCorridor的enter方法,但我对CnetralCorridor类本身继承类Scene这一事实感到困惑。我不知道如何使用此处所述的委派方法:https://stackoverflow.com/a/2797332/2572773

3 个答案:

答案 0 :(得分:1)

1)Python类以大写字母开头是一个很好的做法。    此外,名称 map 是一个内置的python函数。

2)在地图类上传递Scene实例有什么问题?

class Map(object):
    def __init__(self, scene):
        self.scene = scene
    def enter(self):
        self.scene.enter()

a_map = Map(CentralCorridor())

答案 1 :(得分:0)

此代码是否有帮助:

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')

你不应该使用map,而是使用Map,因为map()是一个内置函数

答案 2 :(得分:-1)

首先,您应该重命名地图类,因为map是一个内置函数,你会在这里暗示。

要回答您的问题:您可以调用CentralCorridor.enter(self)在当前实例上显式调用CentralCorridor的enter方法(不必 是CentralCorridor实例)。