我在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
任何想法或建议都会很棒,谢谢!
答案 0 :(得分:3)
您可能在函数定义中需要global nodeId
,但在概念上将它作为类变量更有意义。
class Node:
nodeId = 0
def __init__(self, tag, t, n, inputFile, init = True):
...
self.id = Node.nodeId
Node.nodeId += 1