python - 关于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 的课程。
我的问题是如何构建该注册方法。我认为这可能是某种多重继承,但我有点卡在那里。
解决方案
这不是 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"是不正确的。但是,如果绘图生成器是一种绘图查看器,那么是的,您可能希望继承自.SimplePlotGenerator
PlotViewer
SimplePlotGenerator
SimplePlotViewer
推荐阅读
- laravel - Laravel - 阅读所有可用语言,但所有翻译都是德语
- email - 我可以使用人工收件人地址预热 IP 地址吗?
- java - TypedQuery getResultList 返回对象数组而不是特定类型。在 for 循环中迭代时获取 ClassCastException
- android - Firebase 测试实验室 Robo 脚本不会打开 Spinner
- ruby-on-rails - Rails & PostgreSQL:通过自定义字段批量查找不同的记录
- java - 我无法连接我的 java mqtt 客户端,总是得到无效的连接参数
- wpf - 刷新没有 ObersvableCollection 但具有我的视图模型属性的数据网格
- scala - 使用 partitionBy 并在 spark 中合并在一起
- kubernetes-helm - 错误:验证失败:无法识别“”:版本“”中类型“部署”没有匹配项
- spring-boot - 使用 Spring Boot 在 Kafka 集群中实现容错