gpt4 book ai didi

Python __init__.py,较少污染的命名空间

转载 作者:行者123 更新时间:2023-12-01 09:17:00 26 4
gpt4 key购买 nike

我有一个目录结构

foobar/
__init__.py
baz.py

其中 __init__.py 只是

from .baz import do_something

baz.py

def do_something():
return

现在,当我导入 foobar 时,我可以访问

foobar
foobar.do_something()

不错!不过,也有

foobar.baz

尽管它从未明确导入。我想它已经与 do_something 一起导入了。

有没有一种方法可以使 do_something 用作 foobar.do_something 而不将 foobar.baz 添加到命名空间? (并且无需将所有内容放入 __init__.py 中。)

最佳答案

此行为记录在 chapter 5 of the Python Language Reference 中。如果您确实想要禁用它,可以在__init__.py中执行此操作:

from .baz import do_something
del baz

导入时会从 foobar 的命名空间中删除 baz

但是,据我所知,这并不常见。您想要这样做有什么特殊原因吗?

关于Python __init__.py,较少污染的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51156893/

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