包:一大堆模块的集合

包的导入

  import 与模块的导入一样,中间用.隔开,同时也必需.的左边必需为包,整个单位的最小单位是py,不能是函数和变量

from ... import ...

  需要注意的是from后import导入的模块,必须是明确的一个不能带点,否则会有语法错误,如:from a import b.c是错误语法

,同时import后面至少是py的上一级,也可以为py中的函数,变量。

 __init__文件

  只要import了,必学会执行__init__中的代码,不过是在此包级别中

from 包 import *

  同理,与模块的导入一样,同时也可以与__all__配合使用。此时from后面的下一级必须有py文件,导入的变量是from下一级中的所有变量与函数。执行from 包 import * 后,导入的是包的次级文件夹中的所有py文件,但是不包括次级文件夹中的包里面的模块,调用时会报错。同时__init__中可以与__all__使用,使其规定导入的某些变量,同时也最好是与__init__同级的模块的变量和函数。

包的绝对导入与相对导入

导语:导入包时导入所有的变量,函数,模块。需要在__init__中加入其他的,来完成导入

包的绝对导入

  绝对导入:以最大级别作为起始,包的内部都是以包的第一级为起点 ,从最大级开始导

  使用绝对路径 不管在包内部还是外部 导入了就能用

  不能挪动,但是直观

包的相对导入

  相对导入:用.或者..的方式最为起始(只能在一个包中使用,不能用于不同目录内)

  可以随意移动包 只要能找到包的位置,就可以使用包里的模块

  包里的模块如果想使用其它模块的内容只能使用相对路径,使用了相对路径就不能在包内直接执行了

详细见http://www.cnblogs.com/Eva-J/articles/7292109.html#_label7

  

  

原文地址:https://www.cnblogs.com/accolade/p/10491668.html