2011-09-25 43 views
1

我正在學習Python,所以我可以輕鬆修改files from AIMA。我知道Java和C++,但是我發現存儲庫上的AIMA代碼太混亂了。 Python代碼看起來更簡單,更優雅......但是,我不知道Python。我該如何玩這個.py文件?

我想導入search.py中的函數。

我試圖創建一個search2.py文件是這樣的:在文件夾上

import search 

class Problem2(Problem): 
    pass 

其中search.py​​是找來:

~/aima/aima-python$ python search2.py 
Traceback (most recent call last): 
    File "search2.py", line 3, in <module> 
    class Problem2(Problem): 
NameError: name 'Problem' is not defined 

這是爲什麼?

+0

可能與:http://stackoverflow.com/questions/3188929/why-import-when-you-need-to-use-the-full-name –

回答

7

當您使用import search時,您將名稱search定義爲從執行search.py​​創建的模塊。如果有一個名爲Problem類,你訪問它search.Problem

import search 

class Problem2(search.Problem): 
    pass 

另一種方法是用這種說法定義Problem

from search import Problem 

,其執行search.py​​,然後在規定Problem您文件作爲來自新創建的搜索模塊的名稱Problem。請注意,在此表單中,名稱search未在您的文件中定義。

0

如果類Problem位於search模塊中,你必須輸入它要麼像from search import Problem或使用這樣的:

import search 

class Problem2(search.Problem): 
    pass 
3

你這裏有兩種選擇:

  1. 相反import search,請寫from search import Problem

  2. 代替class Problem2(Problem),寫class Problem2(search.Problem)