python 包和导入模块

来源:互联网 发布:网络维修工 编辑:程序博客网 时间:2024/05/17 23:04

包的构成三要素:目录文件夹,xxx.py,__init__.py。
import包时,程序会先执行__init__.py文件,用于初始化包的属性和方法。若__init__.py为空时,默认初始化包内所有的属性和方法。

导入模块

如下文件结构模块间进行文件导入:
floder
  —floderA:
    —A1.py
    —A2.py
  —floderB:
    —B1.py
    —B2.py
  —main.py
1. A1.py如何导入A2模块?
import A2
执行A1.py时,系统路径为floderA的绝对路径,所以执行import A2时,系统可明确查询到A2模块。
2. mian.py如何导入A1模块?
第一步:在floderA文件下添加__init__.py,使floderA变成一个包。
第二步:from floderA.A1 import *
执行main.py文件时,系统路径为floder的绝对路径。执行from floder.A1 import *,系统可明确找到floderA;而通过将floderA变成包,系统又明确可在包内找到A1模块。
3. 执行A1.py文件,A1.py如何导入B1.py模块?
第一步:在floderB文件下添加__init__.py,使floderB变成一个包。
第二步:在A1.py添加import sys sys.path.append(floder的绝对路径)
第三步:from floderB.B1 import *
执行A1.py,系统路径为floderA的绝对路径。通过 sys.path.append()函数设置系统路径为floder路径,使程序明确找到floderB,而通过将floderB变成包,系统又明确可在包内找到B1模块。

4. 若执行mian.py文件但需要A1.py导入B1.py模块,如何操作?
第一步:在floderB文件下添加__init__.py,使floderB变成一个包。
第二步:在floderA文件下添加__init__.py,使floderA变成一个包。
第三步:在A1.py添加from floderB.B1 import *
第四步:在main.py添加from floderA.A1 import *
执行mian.py文件,系统路径为floder绝对路径。在floderA和floderB成为包后,A1.py可明确找到B1模块。

原创粉丝点击