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

标签 python module namespaces styles

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

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

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

最佳答案

在 Python 中导入只是将内容添加到您的命名空间。限定导入名称的方式是 import foofrom 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 *

关于python - 有没有办法绕过 Python 中的命名空间/模块名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461682/

相关文章:

python - 受其他数组限制的 Numpy 随机数组

python - 正确导入模块类python

ruby - 定义一个 `module_function` 然后覆盖相同的方法 : how many methods exist?

c++ - 运算符重载和命名空间

C++:实例化没有 namespace 的对象

python - 通过 pandas 数据框将双组打印为二维数组

python - 在 Python 中从 MS Word 文档中提取标题

python - 格式化多个Python变量

python - 导入 Python 类

react-native - 在 React Native 应用程序中使用排版命名空间的最佳方法是什么