包的概念及导入
1、包概念简介及如何在pycharm中建包
# 什么是包
一个py文件就是一个模块,而包就是多个py文件的整合体
# 包和文件夹的区别
包在创建的时候就含有一个__init__.py文件,而文件夹是没有的
- 如何在pycharm中建包
鼠标右键点击项目文件夹new
>>>Python Package
,这里说一下,Directory是指普通的文件夹
2、如何导包
# 如何导包
# 导入一个包
import aaa # from aaa
'''
在之前我们介绍模块的时候说过,每次导入模块时都会发生四件事:
1、产生执行文件的名称空间
2、运行模块文件并产生一个其对应的名称空间
3、运行模块文件产生的名字都放在模块的名称空间里
4、在执行文件的名称空间里产生一个和模块文件名字相同的名字指向模块文件的名称空间
在我们导入包时,同样也发生了四件事:
1、产生执行文件的名称空间
2、导入包时产生包的名称空间
3、执行包下__init__.py文件并把执行的数据都丢到包的名称空间
3、在执行文件中产生了一个和包名字相同的名字指向包的名称空间
导包和导模块时不一样,我们导包时,数据都是通过__init__文件传递的
'''
# 通过下面的例子对包有一个了解
# 在aaa包下建立两个模块文件
# 导入m1文件并调用m1里面的方法
from aaa import m1
m1.fun() # from m1
# 导入m2文件里的方法
from aaa.m2 import func
func() # from m2
# 在__init__文件里导入m1和m2并调用其里面的方法
import aaa # from m1,from m2
# 在包aaa下再创建一个bbb包,导入bbb包,运行bbb下的__init__文件
import aaa.bbb # from bbb
# 如何让aaa包里的模块调用bbb包里面的模块?
# 在m1中调用bbb里面的ccc
from aaa import m1
m1.ccc.f() # from ccc
'''
导入包时最重要的一点:执行__init__.py文件,这也是在创建包时,__init__文件不能被重命名的根本原因
'''
![image]()