编写Python import语句的正确方法是什么

mat*_*thu 0 python import conventions

请帮助理解这三个import语句的区别是什么,以及它们执行时在底层发生了什么.

>>import lxml

>>import lxml.html

>>from lxml import html
Run Code Online (Sandbox Code Playgroud)

我理解第一次导入将导致整个lxml模块在当前范围内可用.

第三个导入只导致范围内的html子模块可用.

那么中/秒导入的最终效果是什么?如果它与其他两个中的任何一个具有相似的效果那么哪个是最恐怖的方式,为什么要用两种方法来达到同样的效果呢?

谢谢

WKP*_*lus 5

差异1

  1. 使用时import lxml.html,您需要使用lxml.html引用导入的模块.
  2. 使用时from lxml import html,您可以使用html它来引用它.

差异2

如果有另一个html模块,您已导入,使用from lxml import html可能会导致冲突,但import lxml.html不会,因为在它之前有一个命名空间 lxml.

差异3

您可以使用从模块from xx import v导入对象,但不能执行此操作.vxximport xx.v