2013-10-11 40 views
-2

我是python的新手,我無法獲取下面類的實例,它位於名爲「util.py」的python文件中:在Python中使用「__init __(self)」方法獲取類的實例

... 
class Stack: 
    def __init__(self): 
     self.list = [] 
... 

而且我要建一個名爲「Search.py​​」另一個Python文件中的上述類的一個實例,下面的代碼:

def depthFirstSearch(problem): 

    from util import Stack 

    path = [] #list used to return the desired actions 

    DFSstack = Stack() 

確實沒有什麼更多的在我的代碼相信我!:) 但我得到這個錯誤:TypeError:'NoneType'對象不可迭代

請幫幫我!

+2

請發佈* full * traceback以及;在這段代碼中有* nothing *會拋出異常。 –

+0

對於初學者,你並沒有重複任何事情。 –

+0

讓我查看我的代碼 –

回答

1

您不需要直接撥打__init__;調用

>>> class Stack: 
...  def __init__(self): 
...   self.list = [] 
... 
>>> DFSstack = Stack() 

__init__初始化方法將被自動調用。

+0

我試過,但我得到這個錯誤:TypeError:'NoneType'對象不可迭代 –

+0

@MortezaFarhang :不與您發佈的代碼一起使用。 –

+0

有沒有什麼辦法可以通過調用「__init __()」來獲得類的實例? –

0

爲什麼不讓棧從列表繼承?它幾乎和列表一樣,但你可以添加你自己的方法。

class Stack(list): 
    pass 
+0

你是對的我猜,但我在大學做了一個計算機分配,我們好心腸不應該改變堆棧定義結構:) –

相關問題