如果您有module
之类的模块,是否可以不使用该模块而绕过它并使用内部提供的功能?
我导入了模块,但是编译器仍然抱怨没有找到function
。我仍然必须使用module.function()
。
它具有更多功能,所以我不想一个接一个地重新定义它们,只是尽可能避免键入module
。
最佳答案
使用Python导入只会向您的命名空间添加内容。如何限定导入的名称是import foo
和from foo import bar
之间的区别。
在第一种情况下,您只需导入模块名称foo
,这就是您访问其中任何内容的方式,这就是为什么需要执行foo.bar()
的原因。第二种情况,您只显式导入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
或者您可以为名称起别名
import foo as imported_foo
底线-尽量避免使用
from foo import *
。关于python - 有没有办法绕过Python中的 namespace /模块名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15461682/