这两种进口货有什么区别吗?

2024-04-25 03:38:06 发布

您现在位置:Python中文网/ 问答频道 /正文

下面两个导入语句有什么不同吗?还是一样?你知道吗

from package import *

import package

Tags: fromimportpackage语句
2条回答

区别在于对包使用了名称空间。你知道吗

from package import *
class_in_package()

import package
package.class_in_package()

from package import *将包中的所有内容导入本地名称空间;不建议这样做,因为这可能会引入不需要的内容(如覆盖本地名称空间的函数)。这是一个快速方便的导入工具,但是如果事情变得严重,应该使用from package import X,Y,Zimport package语法。你知道吗

import package将包中的所有内容导入本地package对象。因此,如果包实现了something()函数,您将通过package.something()使用它。你知道吗

另外,应该讨论的另一件事是嵌套命名空间的情况:假设您有函数package.blabla.woohoo.func(),您可以import package.blabla.woohoo并使用package.blabla.woohoo.func(),但这太复杂了。相反,简单的方法是from package.blabla import woohoo,然后使用woohoo.func()from package.blabla.woohoo import func,然后使用func()。我希望这有道理。如果没有,下面是一段代码来说明:

import package.blabla.woohoo
package.blabla.woohoo.func()

from package.blabla import woohoo
woohoo.func()

from package.blabla.woohoo import func
func()

希望这有帮助:)

相关问题 更多 >