0
我有一個我正在嘗試編寫的類叫做dbObject,我試圖從不同文件夾中的腳本導入它。我的結構如下:編寫和導入自定義模塊/類
/var/www/html/py/testobj.py
/var/www/html/py/obj/dbObject.py
/var/www/html/py/obj/__init__.py
現在,__init__.py
是一個空文件。以下是dbObject.py的內容:
class dbObject:
def __init__():
print "Constructor?"
def test():
print "Testing"
和這裏的testobj.py的內容:
#!/usr/bin/python
import sys
sys.path.append("/var/www/html/py")
import obj.dbObject
db = dbObject()
當我跑,我得到:
Traceback (most recent call last):
File "testobj.py", line 7, in <module>
db = dbObject()
NameError: name 'dbObject' is not defined
我Python新手,所以我很困惑我做錯了什麼。有人能指點我正確的方向嗎?
編輯:感謝的Martijn Pieters的回答我修改testobj.py如下:
#!/usr/bin/python
import sys
sys.path.append("/var/www/html/py")
sys.path.append("/var/www/html/py/dev")
from obj.dbObject import dbObject
db = dbObject()
但是,現在當我運行它,我得到這個錯誤:
Traceback (most recent call last):
File "testobj.py", line 7, in <module>
db = dbObject()
TypeError: __init__() takes no arguments (1 given)
難道這指我的init .py或dbObject中的構造函數?編輯(2):解決了一個我自己,構造函數必須至少能夠接受一個參數 - 對自身的引用。簡單的修復。看起來這個問題解決了!編輯(最後):這是很好 - 我可以切出導入系統和sys.path.append行,它仍然在這種情況下工作。可愛。
如果您使用'from X import Y'語句,那麼您的代碼應該使用'Y'來引用導入的對象。 'obj.dbObject.dbObject()'會失敗並顯示錯誤消息'NameError:name'obj'is not defined' –