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

2024-03-29 12:58:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有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类本身从类场景继承的事实弄糊涂了。我不知道如何使用这里解释的委托方法:https://stackoverflow.com/a/2797332/2572773


Tags: 方法self游戏mapobjectinitdef场景
3条回答

此代码是否有帮助:

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()是一个内置函数

首先,您应该重命名map类,因为map是一个内置函数,您将在这里隐藏它。你知道吗

回答你的问题:你可以打电话CentralCorridor.enter中心(self)在当前实例上显式调用CentralCorridor的enter方法(它不必是CentralCorridor实例)。你知道吗

1)对于Python类来说,最好从大写字母开始。 此外,namemap是一个内置的python函数。你知道吗

2)在map类中传递场景实例有什么问题?你知道吗

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

a_map = Map(CentralCorridor())

相关问题 更多 >