python学习6_1 包的使用

包的本质:

  • 包含__init__.py文件的文件夹
  • 是模块的一种形式
  • 所有文件都是被用来导入使用的,不是用来被直接执行的

import p1 做了三件事

  1. 创建p1的名称空间
  2. 执行__init__.py文件
  3. 在当前执行文件中拿到一个名字p1,p1指向__init__py的名称空间

绝对导入:每次导入都以最顶级的包为其实开始查找

run.py下面的代码
#触发p1下的__init__.py
import p1
p1.m1.f1()

p1.__init__.py下的代码
from p1 import m1

p1.m1下的代码:
def f1():
    print('f1.m1')

相对导入:相对于当前所在的文件,. 代表当前所在文件,..代表上一级,强调:相对导入只能在被导入的模块中使用

不写代码了。。。

包和文件夹的区别:包本质上就是以文件夹的形式组织的模块,是模块,是模块。python3包里面删掉__init__.py还是可以用,只是不能针对包里面的内容做一些定制化的功能。

猜你喜欢

转载自www.cnblogs.com/cooky/p/9418930.html