Skip to main content
 首页 » 编程设计

python之有没有办法绕过 Python 中的命名空间/模块名称

2025年05月04日20fff_TT

如果你有一个像module这样的模块,你能绕过它并在不使用该模块的情况下使用内部可用的功能吗?

我导入了模块,但编译器仍然提示没有找到函数。我仍然必须使用 module.function()。

它还有很多功能,所以我不想一一重新定义它们,而是尽可能避免输入 module。

请您参考如下方法:

在 Python 中导入只是将内容添加到您的命名空间。限定导入名称的方式是 import foo 和 from foo import bar 之间的区别。

在第一种情况下,您只需导入模块名称 foo,这就是您访问其中任何内容的方式,这就是为什么您需要执行 foo.bar()。第二种情况,您显式导入 only bar,现在您可以这样调用它:bar()。

from foo import * 会将所有可导入 名称(在特殊变量 __all__ 中定义的名称)导入当前命名空间。这虽然有效,但不推荐这样做,因为您可能最终会不小心覆盖现有名称。

foo = 42 
from bar import * # bar contains a `foo` 
print foo # whatever is from `bar` 

最佳做法是导入您需要的任何内容:

from foo import a,b,c,d,e,f,g

或者你可以别名

将 foo 导入为 imported_foo

底线 - 尽量避免 from foo import *。