首页 > 解决方案 > 关于python中的类的问题需要通过使用另一个类的方法来传递整个类

问题描述

我正在构建几个类,这些类及其方法需要通过另一个类的方法传递。

class SimplePlotGenerator:

    def __init__(self):
        self.phrase = 'Something happens'
    def generate(self):
        return self.phrase

在这里另一个班级应该做。

pv = PlotViewer()
pv.register(SimplePlotGenerator())

pv.generate()
'Something happens'

我还有两个用于 PlotGenerator 的课程。

我的问题是如何构建该注册方法。我认为这可能是某种多重继承,但我有点卡在那里。

标签: pythonclassobject

解决方案


这不是 100% 清楚,但我认为您可能只是想让它成为构造函数参数:

class PlotViewer:
    def __init__(self, generator):
        self.generator = generator

    def generate(self):
        self.generator.generate()

# To use
pv = PlotViewer(SimplePlotGenerator())
pv.generate()

我假设您想要一个参数而不是继承,因为名称 "generator" 和 "viewer" 有点暗示a "is a"是正确的。但是,如果绘图生成器是一种绘图查看器,那么是的,您可能希望继承自.SimplePlotGeneratorPlotViewerSimplePlotGeneratorSimplePlotViewer


推荐阅读