【问题标题】:Access class hierarchy attribute访问类层次属性
【发布时间】:2016-10-11 23:40:39
【问题描述】:

给定一个名为DataStream的类

class DataStream(object):
    def __init__(self):
        self.start = start
        self.input_val = input_val

还有一个名为InDataStream的类:

class  InDataStream(DataStream):
    def __init__(self):
        super( InDataStream, self).__init__()
        self.ready = ready

stream = InDataStream()

我想将stream 的一部分DataStream 发送到一个函数中,例如:

function(stream.DataStream)

有什么好方法来完成这项任务吗?

【问题讨论】:

  • 这没有任何意义,stream(或任何InDataStream)没有 DataStream,它 DataStream.
  • 您是否在问如何将InDataStream 降级为DataStream 并隐藏其InDataStream 品质?你为什么要这样做?这听起来像XY problem
  • 我有点想通过忽略 ready 属性来像使用 datastream 一样使用 indatastream。我想将 indatastream 的数据流部分发送到一个函数中。

标签: python python-3.x class-hierarchy class-attributes


【解决方案1】:

如果您希望从类InDataStream 的实例访问DataStream 的实例,那么您可以考虑使用组合而不是继承:

class InDataStream(object):
    def __init__(self):
        self.ready = ready
        self.datastream = DataStream()

那么你可以这样做:

stream = InDataStream()
function(stream.datastream)

【讨论】:

  • 谢谢......我完全忽略了我错过了......它已经解决了:)
  • 有没有不改变类结构就可以实现的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多