如果你有一个像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 *
。
关于python - 有没有办法绕过 Python 中的命名空间/模块名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461682/