我有一个我正在尝试编写的名为 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):我自己解决了这个问题,构造函数必须能够接受至少一个参数 - 对自身的引用。简单的修复。看来这个问题已经解决了!
编辑(最终):这很好 - 我可以删除 import sys 和 sys.path.append 行,它在这种情况下仍然有效。迷人的。