python:在相对导入中不允许 * 的理由是什么?

发布于 2024-11-14 10:21:53 字数 143 浏览 2 评论 0原文

不允许相对进口中使用 * 的理由是什么?例如

from ..new_tool import *

或直接进行相对导入:

import ..new_tool

What's the rationale behind not allowing * in relative imports? e.g.

from ..new_tool import *

or doing a relative import directly:

import ..new_tool

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帅气称霸 2024-11-21 10:21:53

后者被禁止的原因是 ..new_tool 不能在表达式 (PEP 328)

禁止导入.foo的原因
是因为之后

<前><代码>导入XXX.YYY.ZZZ

那么 XXX.YYY.ZZZ 可用于
表达。但是

<前><代码> .moduleY

不能用于
表达。

由于 *-imports 在开发过程中应该只是一个快速破解,我怀疑相对 *-imports 的功能被遗漏了,因为它不是必需的。

The reason the latter is prohibited is that ..new_tool is not usable in an expression (PEP 328):

The reason import .foo is prohibited
is because after

    import XXX.YYY.ZZZ

then XXX.YYY.ZZZ is usable in an
expression. But

    .moduleY

is not usable in an
expression.

Since *-imports should only ever be a quick hack while in development, I suspect the functionality for relative *-imports was left out because it's not necessary.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文