如何将连续数字标识符添加到对象的新实例中?

时间:2014-09-20 06:33:57

标签: python

我在Python上在辅助内存中实现R-Trees。我需要保留节点的文件,所以我想枚举它们以便于访问,因此我可以在每个节点上创建一个带有矩形的文件。我想要做的是,每次创建一个节点时,给它一个“id”,这是一个连续的数字。

我尝试在我的类定义之前和之后定义一个全局变量,但这似乎不起作用。即使我将其定义为全局,当我尝试创建一个Node时, init 中也会出现错误,因为未定义“nodeId”,特别是当我尝试向变量添加1时:

global nodePath, path, nodeId
...
nodeId = 0

class Node:
    def __init__(self, tag, t, n, inputFile, id = nodeId, init = True):
        ...
        self.id = id
        nodeId += 1

任何想法或建议都会很棒,谢谢!

1 个答案:

答案 0 :(得分:3)

您可能在函数定义中需要global nodeId,但在概念上将它作为类变量更有意义。

class Node:
    nodeId = 0
    def __init__(self, tag, t, n, inputFile, init = True):
        ...
        self.id = Node.nodeId
        Node.nodeId += 1