我正在使用Python 2.7,并且有以下代码结构
model
__init__.py
order.py
cart.py
也就是说,我定义了一个名为model
的包,在这个包中,我定义了一个模块order
,并在order.py中定义了一个类
class MyOrder(object):
def __init__(self, name):
self.name = name
def getname(self):
return self.name
在cart.py中,代码为:
import model
x = model.order.MyOrder("Book")
print x.getname()
当我运行它时,它会抱怨AttributeError: 'module' object has no attribute 'order'
,
但以下是正确的:
import model.order
x = model.order.MyOrder("Book")
print x.getname()
看起来我无法导入包(如import model
)?
答案 0 :(得分:3)
如果您希望model
自动导入order
以便它可用,您应该在__init__.py
中执行此操作。只需将以下内容放在model/__init__.py
:
from . import order
之后,您应该只能model.order
访问import model
。