gpt4 book ai didi

python - 从包中导入只有一个公共(public)成员的子模块时避免重名

转载 作者:行者123 更新时间:2023-11-28 22:08:08 24 4
gpt4 key购买 nike

基本设置

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

foo.py:

class Foo:
def __init__(self):
self.data = "world"
def print(self):
print("Hello, " + self.data)

在我的主脚本中使用这个类:

主.py

import foo

test = foo.Foo()
test.print()

每次实例化类时都必须键入 foo.Foo() 已经感​​觉很荒谬了,但是当我想通过将类分成一个包来组织代码时,情况会变得更糟:

类/__init__.py

# Empty

classes/foo.py

# Copy of foo.py, above

主.py

import classes.foo

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

简单回答

我知道我可以通过使用 from X import Y 来稍微清理一下,如下所示:

from classes.foo import Foo

test = Foo()

首选答案

因为文件 foo.py 包含只有一个 名称与文件匹配的成员,所以我更愿意做类似以下:

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

test = Foo()

有没有办法做到这一点?也许在我的 __init__.py 中有一些代码?

最佳答案

classes/__init__.py 中,放入:

from .foo import Foo

现在您可以编写from classes import Foo

关于python - 从包中导入只有一个公共(public)成员的子模块时避免重名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58863481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com