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更新了标题。谢谢