导入顶级模块的正确方法是什么?

时间:2014-07-24 08:40:24

标签: python

我希望能够引用另一个模块中的顶级模块(更深一级)。 我的解决方案有效,但我想知道这是否是最好的方法。请建议最低 python 2.4

在下面的示例中,我想在base.py中导入abc.py

这是一个简化的目录结构 -

- test.py
- mymodule/
    - base.py
    - __init__.py
    - meta/
        - abc.py
        - __init__.py

base.py

的内容
class basec1:
    def basec1f1(self):
        print "base::C1::F1() called"

class basec2:
    def basec2f1(self):
        print "base::C2::F1() called"

abc.py

的内容
from mymodule.base import basec1

def abcfn():
    print "abcfn() called"
    obj = basec1()
    obj.basec1f1()

test.py

的内容
import mymodule.meta.abc as abc

abc.abcfn()

1 个答案:

答案 0 :(得分:1)

这对我来说很好看。您可以放弃程序包方法(即删除__init__.py文件)并改为使用relative imports,但老实说我更喜欢您的方法。