如果您有module之类的模块,是否可以不使用该模块而绕过它并使用内部提供的功能?

我导入了模块,但是编译器仍然抱怨没有找到function。我仍然必须使用module.function()

它具有更多功能,所以我不想一个接一个地重新定义它们,只是尽可能避免键入module

最佳答案

使用Python导入只会向您的命名空间添加内容。如何限定导入的名称是import foofrom 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/

10-14 19:14
查看更多