因为import pygal并不会递归导入pygal下的子模块。
import pygal这行语句实际上做的是:执行pygal目录下的__init__.py文件。
这两种方法都可以,但后面是更加精准的导入所需要的模块。这样的话在后面代码中用到这个模块的时候可以直接用RotateStyle,如果是第一种写法就要用pygal.style.RotateStyle
理论上来说直接import pygal就可以了。但是如果在代码编写过程中如反复用到其中子模块就会这样pygal.maps.world.xxxxx,这样是很繁琐的。所以使用import pygal.maps.world
另外有些时候只会用到其中的某一个类/函数,而且已有编码中没有命名冲突,就会使用from pygal.style import RotateStyle,这样在代码中直接用RotateStyle就可以了,而不用表明其属于哪个模块。
总的来说,这样做的目的就是为了少敲几下键盘。然而from *** import ***这个语法要谨慎使用!!
第二种写法主要是为了使用的时候写法更简洁
如果不用第二行则要写全名pyga1.style.RotateStyle
用了第二行只需要写RotateStyle
要导入子模块吧。