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

Python 导入顶级模块的正确方法是什么?,python,Python,我希望能够在另一个模块(更深一层)中引用顶级模块。 我的解决方案有效,但我想知道这是否是最好的方法。请推荐最低python 2.4 在下面的示例中,我想在abc.py中导入base.py 以下是一个简化的目录结构- - test.py - mymodule/ - base.py - __init__.py - meta/ - abc.py - __init__.py base.py的内容 class basec1: def bas

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

在下面的示例中,我想在
abc.py
中导入
base.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"
from mymodule.base import basec1

def abcfn():
    print "abcfn() called"
    obj = basec1()
    obj.basec1f1()
import mymodule.meta.abc as abc

abc.abcfn()
abc.py的内容

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

class basec2:
    def basec2f1(self):
        print "base::C2::F1() called"
from mymodule.base import basec1

def abcfn():
    print "abcfn() called"
    obj = basec1()
    obj.basec1f1()
import mymodule.meta.abc as abc

abc.abcfn()
test.py的内容

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

class basec2:
    def basec2f1(self):
        print "base::C2::F1() called"
from mymodule.base import basec1

def abcfn():
    print "abcfn() called"
    obj = basec1()
    obj.basec1f1()
import mymodule.meta.abc as abc

abc.abcfn()

我觉得这个不错。您可以放弃包方法(即删除
\uuu init\uuuu.py
文件)而改用包方法,但我更喜欢您的方法