python是否支持导入包

时间:2018-04-03 23:56:02

标签: python

我正在使用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)?

1 个答案:

答案 0 :(得分:3)

如果您希望model自动导入order以便它可用,您应该在__init__.py中执行此操作。只需将以下内容放在model/__init__.py

from . import order

之后,您应该只能model.order访问import model