Python 从包中导入只有一个公共成员的子模块时,避免名称重复 基本设置

Python 从包中导入只有一个公共成员的子模块时,避免名称重复 基本设置,python,Python,假设我想创建一个名为Foo的类。我可以这样创建一个文件: foo.py: class Foo: def __init__(self): self.data = "world" def print(self): print("Hello, " + self.data) 要在我的主脚本中使用该类: main.py import foo test = foo.Foo() test.print() # Empty # Copy of foo.py,

假设我想创建一个名为
Foo
的类。我可以这样创建一个文件:

foo.py

class Foo:
    def __init__(self):
        self.data = "world"
    def print(self):
        print("Hello, " + self.data)
要在我的主脚本中使用该类:

main.py

import foo

test = foo.Foo()
test.print()
# Empty
# Copy of foo.py, above
import classes.foo

test = classes.foo.Foo()
test.print()
每次实例化类时都必须键入
foo.foo()
,这已经够可笑的了,但当我想通过将类拆分成一个包来组织代码时,情况就更糟了:

classes/\uuuuu init\uuuuu.py

import foo

test = foo.Foo()
test.print()
# Empty
# Copy of foo.py, above
import classes.foo

test = classes.foo.Foo()
test.print()
classes/foo.py

import foo

test = foo.Foo()
test.print()
# Empty
# Copy of foo.py, above
import classes.foo

test = classes.foo.Foo()
test.print()
main.py

import foo

test = foo.Foo()
test.print()
# Empty
# Copy of foo.py, above
import classes.foo

test = classes.foo.Foo()
test.print()
简单回答 我知道我可以通过使用X import Y中的
来清理这个问题,如下所示:

from classes.foo import Foo

test = Foo()
首选答案 由于文件
foo.py
只包含一个名与该文件匹配的成员,因此我希望能够执行以下操作:

from classes import Foo
# Or:
import classes.Foo as Foo

test = Foo()

有办法做到这一点吗?也许在我的
\uuuu init\uuuuuuuuuuuuuuuuuuupy

中的
类/\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy
中有一些代码,放:

from .foo import Foo

现在您可以从类导入Foo编写

@martineau更新了标题。谢谢