我是Python新手,對Python 2.6中的類及其屬性有疑問。Python中的類和定義屬性類型
可以說我有一個這樣的類Node
:這樣
class Node:
x = int
y = int
neighbours = []
discovered = bool
def __init__(self,x,y):
self.x = x
self.y = y
def setNeigbours(self,neighbours):
self.neighbours = neighbours
def addNeighbours(self,n):
if type(n) == list:
self.neighbours.extend(n)
else:
self.neighbours.append(n)
def isDiscovered(self):
return self.discovered
def setDiscovered(self,discovered):
self.discovered = discovered
和A類Graph
:
class Graph:
nodeList = Node
edgeList = Edge
def __init__(self,nodeList,edgeList):
self.edgeList = edgeList
self.nodeList = nodeList
def getNodes(self):
return self.nodeList
def setNodes(self,nodeList):
self.nodeList = nodeList
def addNode(self,n):
if type(n) == list:
self.nodeList.extend(n)
else:
self.nodeList.append(n)
如果我現在創建一個新的圖表,並添加一些節點:
n1 = Node(0,0)
n2 = Node(1,1)
g = Graph([],[])
g.addNode(n1)
g.addNode(n2)
我期待以下幾點到print
<Type 'Node'>
:
for n in g.nodeList:
print type(n)
但是當我運行它,我得到:
<type 'instance'>
<type 'instance'>
有沒有一種方法,來告訴Python,即nodeList
,是一個列表,其中只包含Node
-elements?