2014-09-20 49 views
1

我在Python上實現R-Trees,在輔助內存中。我需要保留一個節點文件,所以我想列舉它們以便於訪問,所以我可以在每個節點上創建一個帶有矩形的文件。我想要做的是,每次創建一個節點時,都要給它一個「id」,它是一個連續的數字。如何將連續的數字標識符添加到新的對象實例?

我試過在我的類定義之前和之後定義一個全局變量,但似乎並不奏效。即使我把它定義爲全球性的,當我嘗試創建一個節點,還有在初始化,因爲「節點ID」沒有定義的錯誤,特別是當我嘗試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 

任何想法或建議會很棒,謝謝!

回答

3

你可能需要在你的函數定義中使用global nodeId,但從概念上講它更像是一個類變量。

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

謝謝你,你是對的,這使得更多的理智和完美的作品:) – Francisca 2014-09-20 15:19:56

相關問題