【问题标题】:Class "super" variable类“超级”变量
【发布时间】:2012-02-15 17:45:14
【问题描述】:

有一个类如下:

class N: 
    def __init__(self, node_id): 
        self.id = node_id      # id (as an integer for example) 
        self.super = 0 
        self.color = 0 

这是关于创建一个节点。可以看到,有一个属性,super。我要调用超级节点的颜色。

我尝试实现:

node.color = node.super.color

但是,这是错误的实现。你知道如何获取其他节点的信息吗?

【问题讨论】:

  • self.super 被设置为0,所以它是一个整数,而整数没有颜色(至少对于我们中间的非联觉者来说)。我似乎错过了什么......
  • @SvenMarnach 是完全正确的。此外,您应该粘贴实际的错误消息,而不是说“这是错误的实现”。
  • 你指的是什么超级节点?类 N 是否应该能够在其 self.super 属性中存储对另一个节点实例的引用?

标签: python class variables


【解决方案1】:

您需要将父节点(或至少其颜色)显式传递给类 init 函数 - 简单的节点类无法“猜测”它与其他节点对象的连接方式。

一种方法是:

class N(object):
    def __init__(self, node_id, parent_node):
         self.id = node_ide
         self.parent = parent_node
         self.color = 0
   # and you canget parentnode color with self.node.color

【讨论】:

  • 这对我来说是正确的。我的问题中缺少关于 OP 是否要存储对另一个节点实例的引用的问题
  • @DanielRoseman - 在 node_ide 上也是一个错字......不要叫他雪莉
猜你喜欢
  • 2015-02-03
  • 2018-10-01
  • 1970-01-01
  • 2019-04-10
  • 2014-08-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
相关资源
最近更新 更多