2011-08-27 112 views
9

我試圖創建一個簡單的Python腳本,並引入兩個自定義類的。我想將它作爲一個模塊來完成。以下是我有:Python中創建相同的目錄/導入自定義模塊

點/ point.py

class Point: 
    """etc.""" 

點/ pointlist.py

class PointList: 
    """etc.""" 

點/ __ init__.py

from . import point, pointlist 

script.py

import sys, point 
verbose = False 
pointlist = PointList() 

當我運行script.py我得到NameError: name 'PointList' is not defined

有什麼奇怪的是,在點/,所有三個模塊文件(__init__,pointlist,點)已經創建了一個.pyc版本,這是以前沒有的,所以它看起來像它正在查找這些文件。類文件本身也編譯時沒有任何錯誤。

我覺得我可能失去了一些東西很簡單,所以請多多包涵。

+0

Python是大小寫敏感的 - 這是你的問題一個錯字,或實際的錯誤? –

+0

你在哪裏看到錯字? –

+0

我的壞 - 沒有正確閱讀。 –

回答

12

對不起,我好像在我前面的回答和評論已經做出了錯誤:

這裏的問題是,你應該通過模塊訪問point對象導入:

point/__init__.py

from point import Point 
from pointlist import PointList 

script.py:

import sys, point 
verbose = False 
pointlist = point.PointList() 

您可以通過導入point如果您要訪問PointListPoint直接,你可以在script.py使用from point import Point, PointList或進口無論是在__init__.py

訪問PointList最少的最好from point import *

再次,對不起,我剛纔的錯誤。

+0

我試圖重新命名'point'(目錄)'points'和更改腳本代碼'進口SYS,points'和它一模一樣的效果(仍然是所有三個文件中創建點pyc文件/) –

+0

當我將其改爲'from。導入點,pointlist.PointList'我得到'SyntaxError:無效的語法' –

+0

我修改了我的答案,我以前沒有。 – immortal

相關問題