包:

模块所在的包,创建一个包用于组织多个模块,包文件夹中必须创建一个名为’__init__.py’的文件,以将其识别为包,否则只能算作是一个普通的目录。在使用该包时,init自动执行。

包可以多层嵌套,以层级方式组织。

init方法可以是空文件,也可以用于初始化。

导入包中的模块:import package.module

 

例子:

test.py

package_runoob

|-- __init__.py

|-- module1.py

|-- module2.py

模块

模块就是包含python代码的文本文件,以py结尾。文件中可以包含类、函数、变量等。但是实际上狭义上应当把实现了具体功能的py文件视作模块。

导入模块:

1.        import 模块名称

只能导入模块,不能导入函数、变量

2.        import 模块名称 as 模块名称别名

3.        form moduleName import *

可以导入模块、函数、变量

例如:

导入模块

from package1 import module1

导入变量

from package1.module1 import var3

导入函数 say_bye是函数名,注意不加括号和参数,只有名字

from package1.module1 import say_bye

导入类 Animal是类名

from package.module1 import Animal

但是,不能只导入类中的函数,却不导入类,如下错误:Dog是类,say_hi是其中函数

from package.module1 import Dog.say_hi

导入模块下所有内容:

from package.module1 import *

 

4.        导入时换行:使用关键字反斜线 \

from package1.module1 import var1,var2,var3,var4,var5,\

var6,var7

 

5.        相对导入和绝对导入

绝对导入:必须从顶级包开始,依次到指定导入内容。

相对导入:.表示当前目录,..上一级目录。

import不能使用相对导入,如import .package2.package4.m2。

入口文件不可以使用相对路径来导入模块,只能使用绝对路径。

python -m main.py 将入口文件当作一个模块执行,则可以使用相对路径导入模块。

6.        导入时的写法:

导入顺序是:标准库模块--第三方模块--自定义模块。

7.        一些项目中共用的需要导入的内容,可以放到包的init中导入

8.        导入时,搜索文件的顺序如下依次:

当前文件目录、环境变量 PYTHONPATH、sys.path(list 类型)

 

模块中类可以包含函数、变量。这样形成多个层级的组织形式。

python文件组织:包(package)、模块(module)、文件(file)_模块